No description
Find a file Use this template
Niclas Rosengren 76e2071cea support a backgrounded Codex run
The MCP call can be sent to the background, but the skills said "synchronous — wait for
it to return", which told Claude not to do the one useful thing available during a
multi-minute implementation: plan the next PRD. That work touches only other PRDs'
markdown, which Codex is forbidden to write, so nothing collides.

Two limits come with it. Verification waits for the call to actually return — running
git diff and the gates against a tree Codex is still writing into invents missing FRs and
routes imaginary fixes back to it. And one build at a time: the marker is a single
repo-wide file, so a second /prd:build overwrites it and offers to clear it out from
under the first.

Parallel planning is pointless if you cannot commit the result, so the commit guard now
exempts PRD markdown. Narrow by construction: only a lone git commit whose staged files
are all prd/**.md, since -a, --amend, --only, a pathspec or a compound `git add && git
commit` all mean the index the hook can read is not what gets committed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 14:47:05 +00:00
.claude-plugin convert the template into a plugin marketplace 2026-08-11 16:03:29 +00:00
docs support a backgrounded Codex run 2026-08-12 14:47:05 +00:00
plugins/prd support a backgrounded Codex run 2026-08-12 14:47:05 +00:00
.gitignore convert the template into a plugin marketplace 2026-08-11 16:03:29 +00:00
CHANGELOG.md support a backgrounded Codex run 2026-08-12 14:47:05 +00:00
CLAUDE.md convert the template into a plugin marketplace 2026-08-11 16:03:29 +00:00
README.md fix the marketplace install URL 2026-08-11 19:37:41 +00:00

niroco marketplace

A Claude Code plugin marketplace. Currently one plugin:

Plugin What it does
prd PRD-driven development with separation of duties — Codex implements (TDD), Claude reviews until approved.

Coming from the v1 template repo? See docs/MIGRATION.md. The v1 tree is tagged v1.

Install

/plugin marketplace add git@git.niroco.se:niroco/agents-workflow-template.git
/plugin install prd@niroco

Then, in each project you want to use it in:

/prd:init

Codex is a per-machine prerequisite: npm i -g @openai/codex && codex login.

The pipeline

/prd:init         once per repo — writes .claude/gates.sh, scaffolds prd/
/prd:new <slug>   scaffold a numbered PRD folder
   ↓  (write prd.md)
/prd:validate     converse to confirm intent; resolutions written back into prd.md   ← human gate
   ↓
/prd:spec         derive requirements.md (FR-N) + tasks.md (checklist → FR IDs)
   ↓
/prd:build        Codex implements (TDD) → Claude reviews until APPROVED → verify
   ↓
review + commit (manual)

Everything is traceable: PRD → FR → Task → test.

Repo layout

Path Purpose
.claude-plugin/marketplace.json The marketplace catalogue.
plugins/prd/ The plugin. See its README.
docs/MIGRATION.md v1 template → v2 plugin migration guide.

Developing the plugin

Point the marketplace at your working copy so edits take effect without pushing:

/plugin marketplace add /home/niro/gits/niroco/agents-workflow-template
/plugin install prd@niroco
/reload-plugins

Validate before pushing:

claude plugin validate ./plugins/prd --strict
claude plugin validate .
bash -n plugins/prd/scripts/*.sh plugins/prd/templates/gates.sh

Bump version in plugins/prd/.claude-plugin/plugin.json for every change you want installed users to receive. Claude Code caches by version string — pushing commits without a bump ships nothing.