{"id":46632575,"url":"https://github.com/reqstool/reqstool-ai","last_synced_at":"2026-04-19T11:01:08.340Z","repository":{"id":342322759,"uuid":"1168531956","full_name":"reqstool/reqstool-ai","owner":"reqstool","description":"AI-assisted management of reqstool requirements traceability — config-driven skills and commands for AI coding assistants","archived":false,"fork":false,"pushed_at":"2026-04-19T09:08:42.000Z","size":72,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-19T10:26:41.569Z","etag":null,"topics":["ai-coding-assistant","claude-code","openspec","reqstool","requirements-traceability"],"latest_commit_sha":null,"homepage":"https://reqstool.github.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reqstool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-27T13:56:55.000Z","updated_at":"2026-04-19T09:07:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/reqstool/reqstool-ai","commit_stats":null,"previous_names":["reqstool/reqstool-ai"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/reqstool/reqstool-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reqstool%2Freqstool-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reqstool%2Freqstool-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reqstool%2Freqstool-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reqstool%2Freqstool-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reqstool","download_url":"https://codeload.github.com/reqstool/reqstool-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reqstool%2Freqstool-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32004043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-coding-assistant","claude-code","openspec","reqstool","requirements-traceability"],"created_at":"2026-03-08T00:12:12.046Z","updated_at":"2026-04-19T11:01:08.333Z","avatar_url":"https://github.com/reqstool.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Commit Activity](https://img.shields.io/github/commit-activity/m/reqstool/reqstool-ai?label=commits\u0026style=for-the-badge)](https://github.com/reqstool/reqstool-ai/pulse)\n[![GitHub Issues](https://img.shields.io/github/issues/reqstool/reqstool-ai?style=for-the-badge\u0026logo=github)](https://github.com/reqstool/reqstool-ai/issues)\n[![License](https://img.shields.io/github/license/reqstool/reqstool-ai?style=for-the-badge\u0026logo=opensourceinitiative)](https://opensource.org/license/mit/)\n[![Documentation](https://img.shields.io/badge/Documentation-blue?style=for-the-badge\u0026link=docs)](https://reqstool.github.io)\n\n# Reqstool AI Integration\n\nAI-assisted management of [reqstool](https://github.com/reqstool/reqstool-client) requirements traceability, with optional [OpenSpec](https://github.com/openspec-dev/openspec) integration.\n\nProvides 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.\n\n## Quick start\n\n### Claude Code\n\n```bash\n# Add marketplace (one-time)\n/plugin marketplace add reqstool/reqstool-ai\n\n# Install core plugin\n/plugin install reqstool@reqstool-ai --scope project\n\n# Optional: OpenSpec integration\n/plugin install reqstool-openspec@reqstool-ai --scope project\n```\n\n### GitHub Copilot CLI\n\n```bash\n# Add marketplace (one-time)\ncopilot plugin marketplace add reqstool/reqstool-ai\n\n# Install core plugin\ncopilot plugin install reqstool@reqstool-ai\n\n# Optional: OpenSpec integration\ncopilot plugin install reqstool-openspec@reqstool-ai\n```\n\n### Configure your project\n\nAfter installing the plugin, run `/reqstool:init` to create `.reqstool-ai.yaml` in your project root:\n\n```\n/reqstool:init\n```\n\nThis walks you through setting up:\n- **URN** — your project identifier used in reqstool YAML files\n- **Revision** — version string for new requirements and SVCs\n- **System path** — where the system-level requirements and SVCs live\n- **Modules** — one or more subproject modules with their paths and ID prefixes\n\nYou 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.\n\n## Configuration (`.reqstool-ai.yaml`)\n\nAll reqstool skills and commands read `.reqstool-ai.yaml` from the project root. This file defines your project's reqstool structure:\n\n```yaml\n# Project URN — matches the urn in your reqstool YAML files\nurn: my-project\n\n# Revision string for new requirements and SVCs\nrevision: \"0.1.0\"\n\n# System-level reqstool directory (SSOT for requirements and SVCs)\nsystem:\n  path: docs/reqstool\n\n# Subproject modules — each imports a subset of requirements/SVCs via filters\nmodules:\n  core:\n    path: core/docs/reqstool\n    req_prefix: CORE_           # Requirement IDs: CORE_0001, CORE_0002, ...\n    svc_prefix: SVC_CORE_       # SVC IDs: SVC_CORE_0001, SVC_CORE_0002, ...\n  app:\n    path: app/docs/reqstool\n    req_prefix: CLI_\n    svc_prefix: SVC_CLI_\n```\n\n| Field | Description |\n|-------|-------------|\n| `urn` | Project URN used in reqstool YAML files and filter keys |\n| `revision` | Version string stamped on new requirements and SVCs |\n| `system.path` | Path to the system-level reqstool directory (SSOT) |\n| `modules.\u003cname\u003e.path` | Path to a subproject's reqstool directory (contains filter files) |\n| `modules.\u003cname\u003e.req_prefix` | Requirement ID prefix (e.g., `CORE_`). Set to `\"\"` for domain-specific prefixes |\n| `modules.\u003cname\u003e.svc_prefix` | SVC ID prefix (e.g., `SVC_CORE_`) |\n\n## Skills and commands\n\n### Commands (user-invoked)\n\n| Command | Description |\n|---------|-------------|\n| `/reqstool:init` | Create or update `.reqstool-ai.yaml` configuration interactively |\n| `/reqstool:add-req` | Add a new requirement and update subproject filters |\n| `/reqstool:add-svc` | Add a new Software Verification Case and update filters |\n| `/reqstool:status` | Show requirements traceability status (uses MCP server if configured, falls back to CLI) |\n### Skills (auto-applied)\n\n| When you're... | Skill |\n|---|---|\n| Working with reqstool YAML files or annotations | `reqstool-conventions` |\n\nSkills are applied automatically based on context — no manual invocation needed.\n\n#### reqstool-openspec plugin (separate install)\n\n| When you're... | Skill |\n|---|---|\n| Working with OpenSpec spec.md files | `reqstool-openspec` |\n\n## Command details\n\n### `/reqstool:init`\n\nInteractively 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.\n\n### `/reqstool:add-req`\n\nAdd 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`.\n\n### `/reqstool:add-svc`\n\nAdd 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`.\n\n### `/reqstool:status`\n\nShow requirements traceability status 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`.\n\nUses the `reqstool` MCP server (`get_status` tool) when configured. Falls back to `reqstool status local` CLI if the server is not available, notifying you immediately when it does.\n\n## Skill details\n\n### reqstool-conventions\n\nBundled convention docs that are auto-applied when working with reqstool files:\n\n- **reqstool-conventions.md** — overview of config fields and skill conventions\n- **reqstool-annotation-conventions.md** — `@Requirements` and `@SVCs` placement rules (Java, Python, TypeScript)\n- **reqstool-decomposition-conventions.md** — parent-child hierarchies, dot-notation IDs, lifecycle states\n\n### reqstool-openspec (separate plugin)\n\nInstall: `/plugin install reqstool-openspec@reqstool-ai --scope project`\n\nOpenSpec integration conventions, auto-applied when working with spec.md files:\n\n- **reqstool-openspec-conventions.md** — how to reference reqstool IDs in OpenSpec specs\n- **config-rules.yaml** — reqstool rules for openspec/config.yaml\n\n## MCP server\n\nThe [reqstool MCP server](https://github.com/reqstool/reqstool-client) (reqstool ≥ 0.9.0) exposes structured tools for AI agents: `get_status`, `list_requirements`, `get_requirement_status`, and more.\n\nThe `/reqstool:init` command can configure it automatically. To set it up manually, add to `.mcp.json` in your project root (project-scoped) or `~/.config/claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"reqstool\": {\n      \"command\": \"reqstool\",\n      \"args\": [\"mcp\", \"local\", \"-p\", \"\u003cyour-system-path\u003e\"]\n    }\n  }\n}\n```\n\nWhen configured, skills like `/reqstool:status` use MCP for structured data. If the server is not available they fall back to `reqstool status local` automatically, notifying you when they do.\n\n## Prerequisites\n\n- [reqstool CLI](https://github.com/reqstool/reqstool-client) (`pipx install reqstool`)\n- [OpenSpec](https://github.com/openspec-dev/openspec) (optional)\n\n## Repo structure\n\n```\nreqstool-ai/\n├── .claude-plugin/\n│   └── marketplace.json              # Claude Code marketplace manifest\n├── .github/\n│   └── plugin/\n│       └── marketplace.json          # Copilot CLI marketplace manifest\n├── plugins/\n│   ├── reqstool/                     # Core plugin\n│   │   ├── .claude-plugin/\n│   │   │   └── plugin.json\n│   │   ├── skills/\n│   │   │   ├── reqstool-init/\n│   │   │   │   ├── SKILL.md\n│   │   │   │   └── references/\n│   │   │   │       └── reqstool-ai.yaml.template\n│   │   │   ├── reqstool-add-req/\n│   │   │   ├── reqstool-add-svc/\n│   │   │   ├── reqstool-status/\n│   │   │   └── reqstool-conventions/\n│   │   │       ├── SKILL.md\n│   │   │       └── references/       # Bundled convention docs\n│   │   └── commands/\n│   │       └── reqstool/\n│   └── reqstool-openspec/            # OpenSpec integration plugin\n│       ├── .claude-plugin/\n│       │   └── plugin.json\n│       └── skills/\n│           └── reqstool-openspec/\n│               ├── SKILL.md\n│               └── references/       # Bundled OpenSpec docs\n├── docs/                             # Antora documentation\n├── CLAUDE.md\n├── README.md\n├── CONTRIBUTING.md\n└── LICENSE\n```\n\n## Testing locally\n\n```bash\n# Claude Code\nclaude --plugin-dir ./plugins/reqstool\nclaude --plugin-dir ./plugins/reqstool-openspec\n\n# Copilot CLI\ncopilot plugin install --path ./plugins/reqstool\ncopilot plugin install --path ./plugins/reqstool-openspec\n```\n\n## Updating\n\n```bash\n# Claude Code\n/plugin update reqstool@reqstool-ai\n/plugin update reqstool-openspec@reqstool-ai\n\n# Copilot CLI\ncopilot plugin update reqstool@reqstool-ai\ncopilot plugin update reqstool-openspec@reqstool-ai\n```\n\n## Contributing\n\nSee the organization-wide [CONTRIBUTING.md](https://github.com/reqstool/.github/blob/main/CONTRIBUTING.md).\n\n### Adding or updating plugin content\n\n1. Make your changes in `plugins/reqstool/` or `plugins/reqstool-openspec/`.\n2. Bump the version in the changed plugin's `.claude-plugin/plugin.json`.\n3. Bump `metadata.version` in both `.claude-plugin/marketplace.json` and `.github/plugin/marketplace.json`.\n4. Test locally with `claude --plugin-dir ./plugins/\u003cplugin-name\u003e`.\n5. Submit a PR.\n\n## Documentation\n\nFull documentation can be found [here](https://reqstool.github.io).\n\n## License\n\nApache 2.0 -- see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freqstool%2Freqstool-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freqstool%2Freqstool-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freqstool%2Freqstool-ai/lists"}