@pieerry/harness-kit 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/product-manager.md +20 -0
- package/.claude/agents/staff-software-engineer.md +25 -0
- package/.claude/commands/product-manager/prd.md +31 -0
- package/.claude/commands/product-manager/prp.md +35 -0
- package/.claude/commands/product-manager/run.md +31 -0
- package/.claude/commands/sse/dev.md +47 -0
- package/.claude/commands/sse/plan.md +33 -0
- package/.claude/commands/sse/pr.md +43 -0
- package/.claude/commands/sse/run.md +39 -0
- package/.claude/commands/sse/test.md +38 -0
- package/.claude/hooks/status-line.sh +103 -0
- package/.claude/plugins/product-manager/README.md +120 -0
- package/.claude/plugins/product-manager/evals/prd-quality.md +88 -0
- package/.claude/plugins/product-manager/evals/prd-readiness.md +66 -0
- package/.claude/plugins/product-manager/evals/prp-context-readiness.md +51 -0
- package/.claude/plugins/product-manager/evals/prp-quality.md +88 -0
- package/.claude/plugins/product-manager/guides/examples/good-prd-example.md +121 -0
- package/.claude/plugins/product-manager/guides/examples/good-prp-example.md +128 -0
- package/.claude/plugins/product-manager/guides/pipeline.md +84 -0
- package/.claude/plugins/product-manager/guides/prd-guidelines.md +27 -0
- package/.claude/plugins/product-manager/guides/product-guidelines.md +75 -0
- package/.claude/plugins/product-manager/guides/prp-guidelines.md +64 -0
- package/.claude/plugins/product-manager/guides/templates/prd.md +89 -0
- package/.claude/plugins/product-manager/guides/templates/prp.md +98 -0
- package/.claude/plugins/product-manager/guides/writing-style.md +71 -0
- package/.claude/plugins/product-manager/hooks/post-eval-prd.sh +77 -0
- package/.claude/plugins/product-manager/hooks/post-eval-prp.sh +70 -0
- package/.claude/plugins/product-manager/hooks/post-write-prd.sh +56 -0
- package/.claude/plugins/product-manager/hooks/post-write-prp.sh +61 -0
- package/.claude/plugins/product-manager/hooks/pre-prp-check.sh +48 -0
- package/.claude/plugins/product-manager/outputs/.markers/.gitkeep +0 -0
- package/.claude/plugins/product-manager/scripts/confluence-publish.py +205 -0
- package/.claude/plugins/product-manager/scripts/link-validator.py +87 -0
- package/.claude/plugins/product-manager/scripts/sensor-runner.py +140 -0
- package/.claude/plugins/product-manager/scripts/token-phase.py +208 -0
- package/.claude/plugins/product-manager/sensors/prd-acceptance-criteria.md +39 -0
- package/.claude/plugins/product-manager/sensors/prd-structure.md +39 -0
- package/.claude/plugins/product-manager/sensors/prp-context-quality.md +42 -0
- package/.claude/plugins/product-manager/sensors/prp-links.md +24 -0
- package/.claude/plugins/product-manager/sensors/prp-structure.md +52 -0
- package/.claude/plugins/product-manager/skills/prd/SKILL.md +33 -0
- package/.claude/plugins/product-manager/skills/prp/SKILL.md +37 -0
- package/.claude/plugins/staff-software-engineer/README.md +90 -0
- package/.claude/plugins/staff-software-engineer/evals/plan-quality.md +48 -0
- package/.claude/plugins/staff-software-engineer/guides/coding-style.md +51 -0
- package/.claude/plugins/staff-software-engineer/guides/commit-style.md +44 -0
- package/.claude/plugins/staff-software-engineer/guides/conventions-override.md +79 -0
- package/.claude/plugins/staff-software-engineer/guides/pipeline.md +69 -0
- package/.claude/plugins/staff-software-engineer/hooks/post-eval-plan.sh +43 -0
- package/.claude/plugins/staff-software-engineer/hooks/post-write-plan.sh +49 -0
- package/.claude/plugins/staff-software-engineer/outputs/.markers/.gitkeep +0 -0
- package/.claude/plugins/staff-software-engineer/sensors/code-conventions.md +37 -0
- package/.claude/plugins/staff-software-engineer/sensors/plan-structure.md +37 -0
- package/.claude/plugins/staff-software-engineer/sensors/test-coverage.md +28 -0
- package/.claude/plugins/staff-software-engineer/skills/backend/SKILL.md +80 -0
- package/.claude/plugins/staff-software-engineer/skills/devops/SKILL.md +58 -0
- package/.claude/plugins/staff-software-engineer/skills/mobile/SKILL.md +52 -0
- package/.claude/plugins/staff-software-engineer/skills/web/SKILL.md +64 -0
- package/.claude/settings.local.json +61 -0
- package/CLAUDE.md +90 -0
- package/LICENSE +21 -0
- package/README.md +192 -0
- package/VERSION +1 -0
- package/bin/hk.js +141 -0
- package/context-library/README.md +38 -0
- package/context-library/business-info-template.md +39 -0
- package/context-library/decisions/README.md +3 -0
- package/context-library/example-prds/README.md +3 -0
- package/context-library/meetings/.gitkeep +0 -0
- package/context-library/metrics/.gitkeep +0 -0
- package/context-library/personal-context-template.md +31 -0
- package/context-library/research/.gitkeep +0 -0
- package/context-library/squads/README.md +32 -0
- package/context-library/strategy/README.md +3 -0
- package/package.json +43 -0
- package/setup/install.sh +154 -0
- package/setup/update.sh +17 -0
package/setup/install.sh
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# harness-kit installer. Copies plugins, status-line hook, and
|
|
3
|
+
# settings.json into a target repo. Reads VERSION at the repo root and records
|
|
4
|
+
# it in the target.
|
|
5
|
+
#
|
|
6
|
+
# Usage:
|
|
7
|
+
# bash /path/to/harness-kit/setup/install.sh [target-dir]
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
12
|
+
SOURCE_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
13
|
+
TARGET="${1:-${TARGET:-$(pwd)}}"
|
|
14
|
+
|
|
15
|
+
VERSION="$(cat "$SOURCE_ROOT/VERSION" 2>/dev/null || echo "0.0.0")"
|
|
16
|
+
|
|
17
|
+
if [ ! -d "$SOURCE_ROOT/.claude/plugins/product-manager" ]; then
|
|
18
|
+
echo "missing plugins at $SOURCE_ROOT/.claude/plugins/"
|
|
19
|
+
echo "clone the repo first, then re-run: git clone https://github.com/space-metrics-ai/harness-kit ~/.harness-kit"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
command -v git >/dev/null 2>&1 || { echo "git not found"; exit 1; }
|
|
24
|
+
command -v python3 >/dev/null 2>&1 || { echo "python3 not found"; exit 1; }
|
|
25
|
+
|
|
26
|
+
OLD_VERSION="$(cat "$TARGET/.claude/.hk-version" 2>/dev/null || echo "")"
|
|
27
|
+
|
|
28
|
+
if [ -n "$OLD_VERSION" ] && [ "$OLD_VERSION" != "$VERSION" ]; then
|
|
29
|
+
echo "harness-kit v$OLD_VERSION → v$VERSION at $TARGET"
|
|
30
|
+
elif [ -n "$OLD_VERSION" ]; then
|
|
31
|
+
echo "harness-kit v$VERSION at $TARGET (reinstall)"
|
|
32
|
+
else
|
|
33
|
+
echo "harness-kit v$VERSION installing at $TARGET"
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# Copy plugin support code (hooks, scripts, guides, sensors, evals, skills, outputs)
|
|
37
|
+
mkdir -p "$TARGET/.claude/plugins"
|
|
38
|
+
for plugin in product-manager staff-software-engineer; do
|
|
39
|
+
rm -rf "$TARGET/.claude/plugins/$plugin"
|
|
40
|
+
cp -R "$SOURCE_ROOT/.claude/plugins/$plugin" "$TARGET/.claude/plugins/$plugin"
|
|
41
|
+
done
|
|
42
|
+
|
|
43
|
+
# Re-resolve symlinks in SSE scripts
|
|
44
|
+
for f in "$TARGET/.claude/plugins/staff-software-engineer/scripts/"*; do
|
|
45
|
+
if [ -L "$f" ]; then
|
|
46
|
+
name="$(basename "$f")"
|
|
47
|
+
rm "$f"
|
|
48
|
+
ln -sf "../../product-manager/scripts/$name" "$f"
|
|
49
|
+
fi
|
|
50
|
+
done
|
|
51
|
+
|
|
52
|
+
# Copy slash commands and Task-invokable agents
|
|
53
|
+
mkdir -p "$TARGET/.claude/commands" "$TARGET/.claude/agents"
|
|
54
|
+
for ns in product-manager sse; do
|
|
55
|
+
rm -rf "$TARGET/.claude/commands/$ns"
|
|
56
|
+
cp -R "$SOURCE_ROOT/.claude/commands/$ns" "$TARGET/.claude/commands/$ns"
|
|
57
|
+
done
|
|
58
|
+
for agent in product-manager staff-software-engineer; do
|
|
59
|
+
cp "$SOURCE_ROOT/.claude/agents/$agent.md" "$TARGET/.claude/agents/$agent.md"
|
|
60
|
+
done
|
|
61
|
+
|
|
62
|
+
# Clean up legacy plugin layout from older installs
|
|
63
|
+
for plugin in product-manager staff-software-engineer; do
|
|
64
|
+
rm -rf "$TARGET/.claude/plugins/$plugin/commands" \
|
|
65
|
+
"$TARGET/.claude/plugins/$plugin/agents" \
|
|
66
|
+
"$TARGET/.claude/plugins/$plugin/.claude-plugin"
|
|
67
|
+
done
|
|
68
|
+
|
|
69
|
+
# Copy status-line hook
|
|
70
|
+
mkdir -p "$TARGET/.claude/hooks"
|
|
71
|
+
cp "$SOURCE_ROOT/.claude/hooks/status-line.sh" "$TARGET/.claude/hooks/status-line.sh"
|
|
72
|
+
chmod +x "$TARGET/.claude/hooks/status-line.sh"
|
|
73
|
+
|
|
74
|
+
# Settings.json
|
|
75
|
+
cat > "$TARGET/.claude/settings.json" <<'EOF'
|
|
76
|
+
{
|
|
77
|
+
"permissions": {
|
|
78
|
+
"allow": [
|
|
79
|
+
"Bash(git:*)",
|
|
80
|
+
"Bash(./gradlew:*)",
|
|
81
|
+
"Bash(./mvnw:*)",
|
|
82
|
+
"Bash(npm:*)",
|
|
83
|
+
"Bash(gh:*)",
|
|
84
|
+
"Bash(jq:*)",
|
|
85
|
+
"Read(outputs/**)",
|
|
86
|
+
"Write(outputs/**)"
|
|
87
|
+
],
|
|
88
|
+
"deny": [
|
|
89
|
+
"Bash(rm -rf:*)",
|
|
90
|
+
"Bash(git push --force:*)",
|
|
91
|
+
"Bash(git push -f:*)",
|
|
92
|
+
"Bash(git reset --hard:*)"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"hooks": {
|
|
96
|
+
"PreToolUse": [
|
|
97
|
+
{
|
|
98
|
+
"matcher": "Write",
|
|
99
|
+
"hooks": [
|
|
100
|
+
{ "type": "command", "command": "[ -x .claude/plugins/product-manager/hooks/pre-prp-check.sh ] && bash .claude/plugins/product-manager/hooks/pre-prp-check.sh; exit 0" }
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"PostToolUse": [
|
|
105
|
+
{
|
|
106
|
+
"matcher": "Write",
|
|
107
|
+
"hooks": [
|
|
108
|
+
{ "type": "command", "command": "[ -x .claude/plugins/product-manager/hooks/post-write-prd.sh ] && bash .claude/plugins/product-manager/hooks/post-write-prd.sh; exit 0" },
|
|
109
|
+
{ "type": "command", "command": "[ -x .claude/plugins/product-manager/hooks/post-write-prp.sh ] && bash .claude/plugins/product-manager/hooks/post-write-prp.sh; exit 0" },
|
|
110
|
+
{ "type": "command", "command": "[ -x .claude/plugins/staff-software-engineer/hooks/post-write-plan.sh ] && bash .claude/plugins/staff-software-engineer/hooks/post-write-plan.sh; exit 0" }
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"matcher": "Edit",
|
|
115
|
+
"hooks": [
|
|
116
|
+
{ "type": "command", "command": "[ -x .claude/plugins/product-manager/hooks/post-eval-prd.sh ] && bash .claude/plugins/product-manager/hooks/post-eval-prd.sh; exit 0" },
|
|
117
|
+
{ "type": "command", "command": "[ -x .claude/plugins/product-manager/hooks/post-eval-prp.sh ] && bash .claude/plugins/product-manager/hooks/post-eval-prp.sh; exit 0" },
|
|
118
|
+
{ "type": "command", "command": "[ -x .claude/plugins/staff-software-engineer/hooks/post-eval-plan.sh ] && bash .claude/plugins/staff-software-engineer/hooks/post-eval-plan.sh; exit 0" }
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"statusLine": {
|
|
124
|
+
"type": "command",
|
|
125
|
+
"command": "[ -x .claude/hooks/status-line.sh ] && bash .claude/hooks/status-line.sh || printf 'harness-kit not installed'"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
EOF
|
|
129
|
+
|
|
130
|
+
# Scaffold conventions folder (idempotent)
|
|
131
|
+
mkdir -p "$TARGET/.claude/conventions"
|
|
132
|
+
if [ ! -f "$TARGET/.claude/conventions/README.md" ]; then
|
|
133
|
+
cat > "$TARGET/.claude/conventions/README.md" <<'EOF'
|
|
134
|
+
# Project Conventions
|
|
135
|
+
|
|
136
|
+
Override staff-software-engineer plugin defaults for this repo. Create files as needed:
|
|
137
|
+
|
|
138
|
+
- backend.md
|
|
139
|
+
- web.md
|
|
140
|
+
- mobile.md
|
|
141
|
+
- devops.md
|
|
142
|
+
|
|
143
|
+
When a file exists here, plugin reads it on top of defaults. Rules in this folder win.
|
|
144
|
+
|
|
145
|
+
See `.claude/plugins/staff-software-engineer/guides/conventions-override.md` for the full reference.
|
|
146
|
+
EOF
|
|
147
|
+
fi
|
|
148
|
+
|
|
149
|
+
# Record installed version
|
|
150
|
+
echo "$VERSION" > "$TARGET/.claude/.hk-version"
|
|
151
|
+
|
|
152
|
+
echo "done. restart Claude Code to load."
|
|
153
|
+
echo " /product-manager:prd | :prp | :run"
|
|
154
|
+
echo " /sse:plan | :dev | :test | :pr | :run"
|
package/setup/update.sh
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# harness-kit updater. Pulls latest source, then re-runs the installer.
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# bash /path/to/harness-kit/setup/update.sh [target-dir]
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
10
|
+
SOURCE_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
11
|
+
|
|
12
|
+
if [ -d "$SOURCE_ROOT/.git" ]; then
|
|
13
|
+
echo "fetching latest source..."
|
|
14
|
+
git -C "$SOURCE_ROOT" pull --ff-only
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
exec bash "$SCRIPT_DIR/install.sh" "$@"
|