feat: add mosaic prdy command for PRD creation and validation

Adds `mosaic prdy {init|update|validate}` subcommand:
- init: launches yolo Claude session with PRD-focused system prompt
- update: launches session to modify existing docs/PRD.md
- validate: bash-only completeness checker (15 checks against PRD guide)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jason Woltje
2026-02-23 11:04:35 -06:00
parent c1f4830bf5
commit c9bf578396
5 changed files with 642 additions and 0 deletions

View File

@@ -51,6 +51,12 @@ Management:
release-upgrade [...] Upgrade installed Mosaic release
project-upgrade [...] Clean up stale SOUL.md/CLAUDE.md in a project
PRD:
prdy <subcommand> PRD creation and validation
init Create docs/PRD.md via Claude session
update Update existing PRD via Claude session
validate Check PRD completeness (bash-only)
Coordinator (r0):
coord <subcommand> Manual coordinator tools
init Initialize a new mission
@@ -478,6 +484,44 @@ _check_resumable_session() {
fi
}
run_prdy() {
check_mosaic_home
local subcmd="${1:-help}"
shift || true
local tool_dir="$MOSAIC_HOME/tools/prdy"
case "$subcmd" in
init)
exec bash "$tool_dir/prdy-init.sh" "$@"
;;
update)
exec bash "$tool_dir/prdy-update.sh" "$@"
;;
validate|check)
exec bash "$tool_dir/prdy-validate.sh" "$@"
;;
help|*)
cat <<PRDY_USAGE
mosaic prdy — PRD creation and validation tools
Commands:
init [--project <path>] [--name <feature>] Create docs/PRD.md via guided Claude session
update [--project <path>] Update existing docs/PRD.md via Claude session
validate [--project <path>] Check PRD completeness against Mosaic guide (bash-only)
Examples:
mosaic prdy init --name "User Authentication"
mosaic prdy update
mosaic prdy validate
Output location: docs/PRD.md (per Mosaic PRD guide)
PRDY_USAGE
;;
esac
}
run_bootstrap() {
check_mosaic_home
exec "$MOSAIC_HOME/bin/mosaic-bootstrap-repo" "$@"
@@ -550,6 +594,7 @@ case "$command" in
sync) run_sync "$@" ;;
seq) run_seq "$@" ;;
bootstrap) run_bootstrap "$@" ;;
prdy) run_prdy "$@" ;;
coord) run_coord "$@" ;;
upgrade) run_upgrade "$@" ;;
release-upgrade) run_release_upgrade "$@" ;;