/req — Project Requirements and Delivery Tracking
SkillProductivityLightweight project requirements checklist surfaced via /brief. Use to track or update outstanding project tasks.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the /req skill
What this skill tells your AI
The instructions your AI receives, as published by fjwood69/mori in skills/req/SKILL.md and read by ahel’s review.
When the user runs /req, parse the arguments and call the mori_advisor-memory_req MCP tool, or perform CRUD operations on type=requirement memories.
Do NOT search for files locally. All tool calls go through the MCP server.
Modes
/req — Dashboard
Call mori_advisor-memory_req() with no arguments. Shows all requirements grouped by project with status counts.
/req --project <name> — Filter by project
Call mori_advisor-memory_req(project="<name>"). Shows requirements tagged with project-<name>.
/req --project <name> --status <value> — Filter by project and status
Call mori_advisor-memory_req(project="<name>", status="<value>"). Status values: done, pending, in-progress, blocked.
/req add "<title>" --project <name> [--desc "<desc>"] [--pri high|medium|low] [--fr|--nfr]
Create a new requirement memory:
- Compute name as
req-<project>-<slugified-title>(kebab-case) - Build tags:
["project-<name>", "status-pending", "pri-<priority>"]+"fr"or"nfr"if specified - Call
mori_advisor-memory_write(name="<name>", title="<title>", description="<desc>", type="requirement", tags=<tags>, body="<desc>") - Report the created memory name
/req done <name> — Mark complete
- Call
mori_advisor-memory_read(name)to get current tags - Replace any existing
status-*tag withstatus-done - Call
mori_advisor-memory_write(name=..., tags=<updated tags>, type="requirement")with the same name and updated tags
/req block <name> [--reason "<text>"] — Mark blocked
- Read current memory via
mori_advisor-memory_read(name) - Swap
status-*tostatus-blocked - Append reason to body if provided
- Write back via
mori_advisor-memory_write
/req wip <name> — Mark in-progress
- Read, swap
status-*tostatus-in-progress, write back
/req import <filepath> [--project <name>] — Bulk import
Read the file from the given path, parse requirements, create each one.
Tag conventions
Each requirement memory uses these tags:
| Tag | Purpose |
|---|---|
project-<name> | Associates with a project |
status-pending | Not started (default) |
status-in-progress | Being worked on |
status-done | Completed |
status-blocked | Blocked by external dependency |
pri-high, pri-medium, pri-low | Priority |
fr | Functional requirement |
nfr | Non-functional requirement |
Argument parsing
Parse the raw input string:
- First positional: mode (
add,done,block,wip,import) or empty for dashboard --project/-p: Project name--status/-s: Status filter (dashboard mode only)--desc: Description text--pri: Priority (high,medium,low, defaultmedium)--fr|--nfr: Requirement type flag--reason: Reason (forblockmode)
Examples
| Input | Effect |
|---|---|
/req | Dashboard of all requirements |
/req --project myapp | View myapp requirements |
/req --project mori --status done | Completed Mori requirements |
/req add "OAuth2 login" --project myapp --pri high --fr | Create new FR |
/req done req-myapp-oauth2-login | Mark as done |
/req block req-myapp-oauth2 --reason "Waiting on IAM" | Block with reason |
/req import ./specs.md --project myapp | Bulk import from file |
Signals
- GitHub stars
- 28
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
req- Source
- github.com/fjwood69/mori