feat(pi): implement milestone M5 - package surface
This commit is contained in:
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
REQUIRED_FILES=(
|
||||
"docs/PI-RESEARCH.md"
|
||||
"docs/PI.md"
|
||||
"docs/PI-SUPERPOWERS.md"
|
||||
"skills/atlassian/pi/SKILL.md"
|
||||
"skills/create-plan/pi/SKILL.md"
|
||||
"skills/create-plan/pi/templates/continuation-runbook.md"
|
||||
"skills/create-plan/pi/templates/milestone-plan.md"
|
||||
"skills/create-plan/pi/templates/story-tracker.md"
|
||||
"skills/do-task/pi/SKILL.md"
|
||||
"skills/do-task/pi/templates/task-plan.md"
|
||||
"skills/implement-plan/pi/SKILL.md"
|
||||
"skills/web-automation/pi/SKILL.md"
|
||||
"skills/reviewer-runtime/pi/run-review.sh"
|
||||
"skills/reviewer-runtime/pi/notify-telegram.sh"
|
||||
"package.json"
|
||||
)
|
||||
|
||||
for file in "${REQUIRED_FILES[@]}"; do
|
||||
test -f "$file"
|
||||
done
|
||||
|
||||
test -x skills/reviewer-runtime/pi/run-review.sh
|
||||
test -x skills/reviewer-runtime/pi/notify-telegram.sh
|
||||
find skills/web-automation/pi/scripts -type f -print -quit | grep -q .
|
||||
find skills/atlassian/pi/scripts -type f -print -quit | grep -q .
|
||||
|
||||
for file in skills/create-plan/pi/SKILL.md skills/do-task/pi/SKILL.md skills/implement-plan/pi/SKILL.md; do
|
||||
grep -q 'docs/PI-SUPERPOWERS.md' "$file"
|
||||
done
|
||||
|
||||
! grep -nE 'update_plan|plan mode|sub-agent|subagents' \
|
||||
skills/create-plan/pi/SKILL.md \
|
||||
skills/do-task/pi/SKILL.md \
|
||||
skills/implement-plan/pi/SKILL.md
|
||||
|
||||
node <<'EOF'
|
||||
const fs = require("fs");
|
||||
const pkg = JSON.parse(fs.readFileSync("package.json", "utf8"));
|
||||
|
||||
if (!pkg.pi || !Array.isArray(pkg.pi.skills) || pkg.pi.skills.length !== 5) {
|
||||
console.error("package.json must define pi.skills with exactly 5 entries");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!Array.isArray(pkg.files) || pkg.files.length === 0) {
|
||||
console.error("package.json must define a non-empty files allowlist");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!Array.isArray(pkg.keywords) || !pkg.keywords.includes("pi-package")) {
|
||||
console.error("package.json must include the pi-package keyword");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log("package metadata ok");
|
||||
EOF
|
||||
|
||||
echo "pi resources verified"
|
||||
Reference in New Issue
Block a user