@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.
Files changed (77) hide show
  1. package/.claude/agents/product-manager.md +20 -0
  2. package/.claude/agents/staff-software-engineer.md +25 -0
  3. package/.claude/commands/product-manager/prd.md +31 -0
  4. package/.claude/commands/product-manager/prp.md +35 -0
  5. package/.claude/commands/product-manager/run.md +31 -0
  6. package/.claude/commands/sse/dev.md +47 -0
  7. package/.claude/commands/sse/plan.md +33 -0
  8. package/.claude/commands/sse/pr.md +43 -0
  9. package/.claude/commands/sse/run.md +39 -0
  10. package/.claude/commands/sse/test.md +38 -0
  11. package/.claude/hooks/status-line.sh +103 -0
  12. package/.claude/plugins/product-manager/README.md +120 -0
  13. package/.claude/plugins/product-manager/evals/prd-quality.md +88 -0
  14. package/.claude/plugins/product-manager/evals/prd-readiness.md +66 -0
  15. package/.claude/plugins/product-manager/evals/prp-context-readiness.md +51 -0
  16. package/.claude/plugins/product-manager/evals/prp-quality.md +88 -0
  17. package/.claude/plugins/product-manager/guides/examples/good-prd-example.md +121 -0
  18. package/.claude/plugins/product-manager/guides/examples/good-prp-example.md +128 -0
  19. package/.claude/plugins/product-manager/guides/pipeline.md +84 -0
  20. package/.claude/plugins/product-manager/guides/prd-guidelines.md +27 -0
  21. package/.claude/plugins/product-manager/guides/product-guidelines.md +75 -0
  22. package/.claude/plugins/product-manager/guides/prp-guidelines.md +64 -0
  23. package/.claude/plugins/product-manager/guides/templates/prd.md +89 -0
  24. package/.claude/plugins/product-manager/guides/templates/prp.md +98 -0
  25. package/.claude/plugins/product-manager/guides/writing-style.md +71 -0
  26. package/.claude/plugins/product-manager/hooks/post-eval-prd.sh +77 -0
  27. package/.claude/plugins/product-manager/hooks/post-eval-prp.sh +70 -0
  28. package/.claude/plugins/product-manager/hooks/post-write-prd.sh +56 -0
  29. package/.claude/plugins/product-manager/hooks/post-write-prp.sh +61 -0
  30. package/.claude/plugins/product-manager/hooks/pre-prp-check.sh +48 -0
  31. package/.claude/plugins/product-manager/outputs/.markers/.gitkeep +0 -0
  32. package/.claude/plugins/product-manager/scripts/confluence-publish.py +205 -0
  33. package/.claude/plugins/product-manager/scripts/link-validator.py +87 -0
  34. package/.claude/plugins/product-manager/scripts/sensor-runner.py +140 -0
  35. package/.claude/plugins/product-manager/scripts/token-phase.py +208 -0
  36. package/.claude/plugins/product-manager/sensors/prd-acceptance-criteria.md +39 -0
  37. package/.claude/plugins/product-manager/sensors/prd-structure.md +39 -0
  38. package/.claude/plugins/product-manager/sensors/prp-context-quality.md +42 -0
  39. package/.claude/plugins/product-manager/sensors/prp-links.md +24 -0
  40. package/.claude/plugins/product-manager/sensors/prp-structure.md +52 -0
  41. package/.claude/plugins/product-manager/skills/prd/SKILL.md +33 -0
  42. package/.claude/plugins/product-manager/skills/prp/SKILL.md +37 -0
  43. package/.claude/plugins/staff-software-engineer/README.md +90 -0
  44. package/.claude/plugins/staff-software-engineer/evals/plan-quality.md +48 -0
  45. package/.claude/plugins/staff-software-engineer/guides/coding-style.md +51 -0
  46. package/.claude/plugins/staff-software-engineer/guides/commit-style.md +44 -0
  47. package/.claude/plugins/staff-software-engineer/guides/conventions-override.md +79 -0
  48. package/.claude/plugins/staff-software-engineer/guides/pipeline.md +69 -0
  49. package/.claude/plugins/staff-software-engineer/hooks/post-eval-plan.sh +43 -0
  50. package/.claude/plugins/staff-software-engineer/hooks/post-write-plan.sh +49 -0
  51. package/.claude/plugins/staff-software-engineer/outputs/.markers/.gitkeep +0 -0
  52. package/.claude/plugins/staff-software-engineer/sensors/code-conventions.md +37 -0
  53. package/.claude/plugins/staff-software-engineer/sensors/plan-structure.md +37 -0
  54. package/.claude/plugins/staff-software-engineer/sensors/test-coverage.md +28 -0
  55. package/.claude/plugins/staff-software-engineer/skills/backend/SKILL.md +80 -0
  56. package/.claude/plugins/staff-software-engineer/skills/devops/SKILL.md +58 -0
  57. package/.claude/plugins/staff-software-engineer/skills/mobile/SKILL.md +52 -0
  58. package/.claude/plugins/staff-software-engineer/skills/web/SKILL.md +64 -0
  59. package/.claude/settings.local.json +61 -0
  60. package/CLAUDE.md +90 -0
  61. package/LICENSE +21 -0
  62. package/README.md +192 -0
  63. package/VERSION +1 -0
  64. package/bin/hk.js +141 -0
  65. package/context-library/README.md +38 -0
  66. package/context-library/business-info-template.md +39 -0
  67. package/context-library/decisions/README.md +3 -0
  68. package/context-library/example-prds/README.md +3 -0
  69. package/context-library/meetings/.gitkeep +0 -0
  70. package/context-library/metrics/.gitkeep +0 -0
  71. package/context-library/personal-context-template.md +31 -0
  72. package/context-library/research/.gitkeep +0 -0
  73. package/context-library/squads/README.md +32 -0
  74. package/context-library/strategy/README.md +3 -0
  75. package/package.json +43 -0
  76. package/setup/install.sh +154 -0
  77. package/setup/update.sh +17 -0
@@ -0,0 +1,49 @@
1
+ #!/bin/bash
2
+ # After Write to outputs/plan/, run sensors and write phase markers.
3
+
4
+ set -euo pipefail
5
+
6
+ FILE_PATH="${CLAUDE_TOOL_FILE_PATH:-}"
7
+ PLUGIN_DIR="$(cd "$(dirname "$0")/.." && pwd)"
8
+
9
+ case "$FILE_PATH" in
10
+ *.claude/plugins/staff-software-engineer/outputs/plan/*.md) ;;
11
+ *) exit 0 ;;
12
+ esac
13
+
14
+ if grep -q "<!-- approved:" "$FILE_PATH" 2>/dev/null; then
15
+ exit 0
16
+ fi
17
+
18
+ echo "[hook] Running plan sensors on $(basename "$FILE_PATH")" >&2
19
+
20
+ FAILURES=()
21
+ for sensor in "$PLUGIN_DIR"/sensors/plan-*.md; do
22
+ [ -f "$sensor" ] || continue
23
+ if ! python3 "$PLUGIN_DIR/scripts/sensor-runner.py" \
24
+ --sensor "$sensor" \
25
+ --artifact "$FILE_PATH" >&2; then
26
+ FAILURES+=("$(basename "$sensor")")
27
+ fi
28
+ done
29
+
30
+ if [ ${#FAILURES[@]} -gt 0 ]; then
31
+ echo "[hook] Plan sensor failures: ${FAILURES[*]}" >&2
32
+ exit 2
33
+ fi
34
+
35
+ echo "[hook] Plan sensors passed" >&2
36
+
37
+ FEATURE_ID="$(basename "$FILE_PATH" .md)"
38
+ MARKERS_DIR="$PLUGIN_DIR/outputs/.markers"
39
+ mkdir -p "$MARKERS_DIR"
40
+ NOW="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
41
+
42
+ if [ ! -f "$MARKERS_DIR/${FEATURE_ID}.plan-validate.start" ]; then
43
+ if [ -f "$MARKERS_DIR/${FEATURE_ID}.plan-generate.start" ]; then
44
+ printf '{"timestamp":"%s"}\n' "$NOW" > "$MARKERS_DIR/${FEATURE_ID}.plan-generate.end"
45
+ printf '{"timestamp":"%s","session_id":"%s"}\n' "$NOW" "${CLAUDE_SESSION_ID:-}" > "$MARKERS_DIR/${FEATURE_ID}.plan-validate.start"
46
+ fi
47
+ fi
48
+
49
+ exit 0
@@ -0,0 +1,37 @@
1
+ # Sensor: Code Conventions
2
+
3
+ Type: deterministic (via project-specific tooling)
4
+ Mode: hard gate
5
+
6
+ Run lint and format checks for the area being touched.
7
+
8
+ ## Backend (Java/Kotlin)
9
+
10
+ Detect via build file:
11
+ - Maven: `mvn -q checkstyle:check` or `mvn -q spotless:check` if configured
12
+ - Gradle: `./gradlew detekt` or `./gradlew checkstyleMain`
13
+
14
+ If no linter is configured, skip and emit a warning.
15
+
16
+ ## Web (Vue/JS)
17
+
18
+ - `npm run lint` if defined
19
+ - `npm run typecheck` or `tsc --noEmit` if TS
20
+
21
+ ## Mobile
22
+
23
+ - iOS: `swiftlint`
24
+ - Android: `./gradlew ktlintCheck` or `./gradlew detekt`
25
+
26
+ ## DevOps
27
+
28
+ - `terraform fmt -check -recursive`
29
+ - `yamllint` for workflows
30
+
31
+ ## On failure
32
+
33
+ Block. Surface the linter output. Agent fixes and re-runs.
34
+
35
+ ## On warning (no linter configured)
36
+
37
+ Note in the output, do not block. Suggest adding the linter to the repo.
@@ -0,0 +1,37 @@
1
+ # Sensor: Plan Structure
2
+
3
+ Type: deterministic
4
+ Mode: hard gate
5
+
6
+ ## Required sections
7
+
8
+ - Scope
9
+ - Repos and files touched
10
+ - Execution flow
11
+ - Risks
12
+ - Rollout
13
+ - Tests
14
+
15
+ ## Forbidden tokens
16
+
17
+ - lorem
18
+ - TODO without ticket reference
19
+ - placeholder
20
+
21
+ ## Markdown rules
22
+
23
+ - exactly 1 H1 heading
24
+ - no em-dash
25
+ - no ASCII box-drawing
26
+
27
+ ## Required metadata
28
+
29
+ Header must declare:
30
+ - Source PRP
31
+ - Squad
32
+ - Tech lead
33
+ - Date
34
+
35
+ ## On failure
36
+
37
+ Block publish. Return missing sections and rule violations. Agent regenerates failed parts only.
@@ -0,0 +1,28 @@
1
+ # Sensor: Test Coverage
2
+
3
+ Type: heuristic
4
+ Mode: hard gate
5
+
6
+ Every feature or bugfix must include tests for the changed code.
7
+
8
+ ## Check
9
+
10
+ For each changed source file in the dev commit set, look for:
11
+ - a corresponding test file (e.g., `Foo.java` -> `FooTest.java`, `bar.ts` -> `bar.test.ts`)
12
+ - OR a test file modified in the same commit that exercises the change
13
+
14
+ Patterns recognized:
15
+ - `**/test/**`, `**/tests/**`, `**/__tests__/**`, `**/spec/**`, `**/specs/**`
16
+ - File suffix: `Test`, `Tests`, `.test.`, `.spec.`, `_test.`, `_spec.`
17
+
18
+ ## Exclusions
19
+
20
+ The following do not need a test in the same commit:
21
+ - README and docs
22
+ - migration files (V*.sql)
23
+ - pure config (yaml, json)
24
+ - generated code
25
+
26
+ ## On failure
27
+
28
+ Block. List the source files without tests. Agent adds the missing tests.
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: backend
3
+ description: Backend engineering conventions for team. Java/Kotlin servers. Project conventions in .claude/conventions/backend.md override these defaults.
4
+ user_invocable: false
5
+ ---
6
+
7
+ Backend conventions, team default.
8
+
9
+ Project override: if `{repo}/.claude/conventions/backend.md` exists, it overrides any rule here. See guides/conventions-override.md.
10
+
11
+ ## Defaults
12
+
13
+ These are illustrative defaults for a JVM-leaning backend. Override per repo via `.claude/conventions/backend.md`.
14
+
15
+ Stack:
16
+ - Java or Kotlin (check pom.xml or build.gradle.kts)
17
+ - Spring Boot (current major) or Ktor for Kotlin services
18
+ - Build: Maven (mvn) or Gradle (gradlew)
19
+ - Deploy: JAR with embedded server
20
+ - Package prefix: match repo convention
21
+
22
+ Persistence:
23
+ - Custom JDBC AbstractRepository + SQL templates. Avoid JPA except where the repo already uses it.
24
+ - Migrations via Flyway, naming `V{YYYYMMDD}__{description}.sql`.
25
+
26
+ Mapping:
27
+ - Orika 1.5.x. Avoid MapStruct unless repo already uses it.
28
+
29
+ Lombok:
30
+ - `@Data`, `@Builder`, `@RequiredArgsConstructor` OK.
31
+ - Avoid `@SneakyThrows`. Be explicit about checked exceptions.
32
+
33
+ Null handling:
34
+ - `Objects.equals()` for equality.
35
+ - `Boolean.TRUE.equals(...)` for nullable booleans.
36
+ - Guards and early returns. Avoid deep nesting.
37
+
38
+ Streams:
39
+ - Fluent: `.stream().filter(...).findAny().orElseThrow(...)`.
40
+ - Avoid stream-of-stream when a guard would do.
41
+
42
+ Transactions:
43
+ - `@Transactional` on service methods, not repositories.
44
+
45
+ Tests:
46
+ - JUnit 4 + Mockito legacy; JUnit 5 + Mockito for newer.
47
+ - `@RunWith(MockitoJUnitRunner.class)` (JUnit 4) or `@ExtendWith(MockitoExtension.class)` (JUnit 5).
48
+ - Naming: `givenX_WhenY_ShouldZ` or `shouldDoSomethingWhenCondition`.
49
+ - Cover positive, negative, and edge cases.
50
+ - `verify()` with `never()`, `times()`, arg matchers.
51
+
52
+ ## Before writing code
53
+
54
+ Read at least 3 similar files in the target repo to confirm:
55
+ - framework version
56
+ - build tool
57
+ - package layout
58
+ - test framework
59
+ - helpers in use (Lombok, Orika, custom)
60
+
61
+ Never assume. Stack varies per repo.
62
+
63
+ ## Forbidden in PR
64
+
65
+ - new JPA usage in repos that use AbstractRepository
66
+ - MapStruct in repos using Orika
67
+ - Composition API in Vue 2 repos (web side)
68
+ - code without tests
69
+ - `@SuppressWarnings` to silence real issues
70
+ - placeholder TODO comments without ticket reference
71
+
72
+ ## Mark gaps
73
+
74
+ If you cannot find a pattern in the repo, do not invent it:
75
+
76
+ ```java
77
+ // TBD - verify with tech lead: {what you searched, what is missing}
78
+ ```
79
+
80
+ Read actual code first. A TODO with context beats fabricated code.
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: devops
3
+ description: DevOps engineering conventions for team. CI/CD, infra-as-code, observability. Project conventions in .claude/conventions/devops.md override these defaults.
4
+ user_invocable: false
5
+ ---
6
+
7
+ DevOps conventions, team default.
8
+
9
+ Project override: if `{repo}/.claude/conventions/devops.md` exists, it overrides any rule here. See guides/conventions-override.md.
10
+
11
+ ## Defaults
12
+
13
+ CI/CD:
14
+ - GitHub Actions for most repos. Workflows in `.github/workflows/`.
15
+ - Reusable workflows when steps repeat across repos.
16
+ - Secrets via GitHub Secrets, never inline.
17
+ - Pin actions to commit SHA, not branch.
18
+
19
+ Containers:
20
+ - Multi-stage Dockerfile. Slim base images (alpine, distroless).
21
+ - Non-root user in production stage.
22
+ - `.dockerignore` mirrors `.gitignore` essentials plus build artifacts.
23
+
24
+ Infra-as-code:
25
+ - Terraform for infra. State in remote backend (S3, etc).
26
+ - Modules in `terraform/modules/`. Stacks in `terraform/stacks/`.
27
+ - Variables via `terraform.tfvars`, never hardcoded.
28
+
29
+ Observability:
30
+ - Grafana dashboards JSON in repo when applicable.
31
+ - Alerts as code (Prometheus rules, Datadog monitors).
32
+ - Log structure: JSON, with `trace_id`, `service`, `level`, `msg`.
33
+
34
+ Secrets:
35
+ - Never commit secrets. Use a secret manager.
36
+ - Pre-commit hook to scan for accidental secrets.
37
+
38
+ ## Before writing code
39
+
40
+ Read at least 3 similar workflows or terraform modules in the repo. Confirm:
41
+ - runner type (ubuntu-latest, self-hosted)
42
+ - secret naming convention
43
+ - environments (dev, staging, prod)
44
+ - approval gates for prod
45
+
46
+ ## Forbidden in PR
47
+
48
+ - inline secrets
49
+ - actions pinned to `@main` or `@latest`
50
+ - terraform without state backend
51
+ - Dockerfile running as root in prod
52
+ - alerts without runbook links
53
+
54
+ ## Mark gaps
55
+
56
+ ```yaml
57
+ # TBD - verify with devops lead: {what is missing}
58
+ ```
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: mobile
3
+ description: Mobile engineering conventions for team. iOS and Android. Project conventions in .claude/conventions/mobile.md override these defaults.
4
+ user_invocable: false
5
+ ---
6
+
7
+ Mobile conventions, team default.
8
+
9
+ Project override: if `{repo}/.claude/conventions/mobile.md` exists, it overrides any rule here. See guides/conventions-override.md.
10
+
11
+ ## Defaults
12
+
13
+ team's mobile work is limited; repos vary widely. Always read the repo before writing.
14
+
15
+ iOS:
16
+ - Swift 5.x. Avoid Objective-C unless repo already uses it.
17
+ - Xcode project conventions per repo.
18
+ - Tests: XCTest. Naming `test_givenX_whenY_thenZ`.
19
+
20
+ Android:
21
+ - Kotlin. Avoid Java unless repo already uses it.
22
+ - Gradle build. Check `build.gradle.kts` vs `build.gradle`.
23
+ - Tests: JUnit 4 or JUnit 5. Espresso for UI.
24
+
25
+ Shared:
26
+ - Match existing architecture (MVVM, MVI, Clean, etc).
27
+ - Match existing DI (Hilt, Koin, Dagger).
28
+
29
+ ## Before writing code
30
+
31
+ Read at least 3 similar files in the repo to confirm:
32
+ - language version (Swift/Kotlin)
33
+ - architecture pattern
34
+ - DI framework
35
+ - test framework
36
+ - networking (Retrofit, Alamofire, URLSession)
37
+
38
+ Mobile stacks vary more than backend or web. Verify everything.
39
+
40
+ ## Forbidden in PR
41
+
42
+ - mixing architecture patterns (e.g., MVP + MVVM in same module)
43
+ - hardcoded strings (use string resources)
44
+ - direct file system access without permission checks
45
+ - code without tests
46
+ - TODOs without ticket references
47
+
48
+ ## Mark gaps
49
+
50
+ ```kotlin
51
+ // TBD - verify with mobile tech lead: {what is missing}
52
+ ```
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: web
3
+ description: Web frontend engineering conventions for team. Vue.js stack. Project conventions in .claude/conventions/web.md override these defaults.
4
+ user_invocable: false
5
+ ---
6
+
7
+ Web frontend conventions, team default.
8
+
9
+ Project override: if `{repo}/.claude/conventions/web.md` exists, it overrides any rule here. See guides/conventions-override.md.
10
+
11
+ ## Defaults (team frontend stack)
12
+
13
+ Stack:
14
+ - Vue 2.6 Options API. Avoid Composition API unless repo already uses Vue 3.
15
+ - Vuex with namespaced modules: `createNamespacedHelpers`.
16
+ - TMS Design System: `IpPageBase`, `IpTabs`, `IpFormField`, `IpSelect`, `IpDialog`, `IpSnackbar`.
17
+ - PrimeVue 2.10 alongside TMS in some repos.
18
+ - `@team-js` packages: `secure-components`, `secure-providers`, `secure-ui`.
19
+ - Feature folders: `/features/private`, `/features/public`.
20
+
21
+ Component order:
22
+ - data, computed, watch, created/mounted, methods, components.
23
+
24
+ Styling:
25
+ - Scoped SCSS.
26
+ - BEM-like naming.
27
+ - CSS variables for theming.
28
+
29
+ UX feedback:
30
+ - Snackbar via `this.$ipSnackbar.add()`.
31
+ - Async: `.catch()` before `.finally()`. Toast on failure.
32
+
33
+ State:
34
+ - Vuex actions for side effects, mutations for state changes.
35
+ - Getters for derived state.
36
+
37
+ Tests:
38
+ - Vitest or Jest depending on repo.
39
+ - Vue Test Utils for component tests.
40
+ - Cover happy path, error path, edge case.
41
+
42
+ ## Before writing code
43
+
44
+ Read at least 3 similar components in the repo to confirm:
45
+ - Vue version (2 vs 3)
46
+ - API style (Options vs Composition)
47
+ - Design system in use (TMS, PrimeVue, custom)
48
+ - State management (Vuex, Pinia, none)
49
+
50
+ Never assume.
51
+
52
+ ## Forbidden in PR
53
+
54
+ - Composition API in Vue 2 repos
55
+ - Inline styles when SCSS exists
56
+ - Direct mutation of Vuex state outside mutations
57
+ - Components without tests
58
+ - console.log in production code
59
+
60
+ ## Mark gaps
61
+
62
+ ```vue
63
+ <!-- TBD - verify with tech lead: {what you searched, what is missing} -->
64
+ ```
@@ -0,0 +1,61 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "WebSearch",
5
+ "Bash(xargs:*)",
6
+ "Bash(tree:*)",
7
+ "Bash(git init:*)",
8
+ "Bash(git add:*)",
9
+ "Bash(git commit:*)",
10
+ "Bash(git push:*)",
11
+ "WebFetch(domain:raw.githubusercontent.com)",
12
+ "WebFetch(domain:github.com)",
13
+ "Bash(git mv:*)",
14
+ "Bash(chmod:*)",
15
+ "Bash(git rm:*)",
16
+ "Bash(node bin/cli.js:*)",
17
+ "Bash(npm view:*)",
18
+ "WebFetch(domain:openspec.dev)",
19
+ "Bash(gh release:*)",
20
+ "Bash(gh api:*)",
21
+ "Bash(gh run:*)",
22
+ "Bash(git pull:*)",
23
+ "Bash(git checkout:*)",
24
+ "Bash(npm version:*)",
25
+ "Bash(head:*)",
26
+ "Bash(ls profiles/*.md)",
27
+ "Bash(ls profiles/knowledge/*.md)",
28
+ "Read(//Users/pierryborges/Development/**)",
29
+ "Bash(rm -f context-vs-onboarding.png FLOW-DETAILS.md CONTRIBUTING.md install.sh README.md CLAUDE.md .cursorrules .DS_Store)",
30
+ "Bash(rm -rf resources/ .AGENT/)",
31
+ "Bash(mv .claude-plugins/basic/skills/* .claude/skills/)",
32
+ "Bash(rm -rf .claude-plugins .claude-plugins-tmp)",
33
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook log --oneline -20)",
34
+ "Bash(git -C /Users/pierryborges/Development/intelipost/pm-os-intelipost-team log --oneline -20)",
35
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook status --short)",
36
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook ls-tree HEAD --name-only)",
37
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook ls-tree HEAD -d --name-only)",
38
+ "Bash(rm -rf .github bin package.json profiles logo.png .gitignore advanced context-library setup sub-agents templates)",
39
+ "Bash(rm -rf .claude/hooks .claude/skills)",
40
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook add -A)",
41
+ "Bash(find *)",
42
+ "Bash(bash *)",
43
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook diff --stat --cached)",
44
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook show d8e0e3e:bin/cli.js)",
45
+ "Bash(node bin/edp.js help)",
46
+ "Bash(node bin/edp.js version)",
47
+ "Bash(node bin/edp.js status .)",
48
+ "Bash(grep -rn \"R\\\\$\" .claude/)",
49
+ "Bash(grep -rn \"R\\\\\\\\\\\\$\" .claude/)",
50
+ "Bash(python3 *)",
51
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook remote -v)",
52
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook branch -vv)",
53
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook commit -m ' *)",
54
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook log --oneline -3)",
55
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook status -sb)",
56
+ "Bash(git -C /Users/pierryborges/Development/eng-delivery-playbook push origin main)",
57
+ "Bash(git remote *)",
58
+ "Bash(git fetch *)"
59
+ ]
60
+ }
61
+ }
package/CLAUDE.md ADDED
@@ -0,0 +1,90 @@
1
+ # CLAUDE - Master Context File
2
+
3
+ Read by Claude Code on every session. Defines how to work in this harness-kit workspace.
4
+
5
+ ## Response Style
6
+
7
+ - **Language:** match the user. Default English. Domain terms stay native.
8
+ - **Code, commits, PRs:** Conventional Commits, repo language.
9
+ - **Error quotes, file paths, URLs:** verbatim.
10
+ - **Destructive/irreversible ops:** full clarity warning.
11
+ - No emojis in output unless user explicitly asks.
12
+
13
+ ## Role
14
+
15
+ AI copilot for product + engineering delivery. Thinking partner and execution assistant. Help PMs, EMs, devs to:
16
+
17
+ - make better strategic decisions
18
+ - write crisp, alignment-focused docs
19
+ - ship features through one consistent pipeline
20
+ - avoid drift in conventions and quality gates
21
+
22
+ ## Squads / Teams
23
+
24
+ Configurable per consumer. Fill `context-library/business-info.md` and `context-library/squads/{slug}/` with your own structure. Ask which squad the work belongs to when not clear.
25
+
26
+ ## Plugins
27
+
28
+ This workspace ships two Claude Code plugins under `.claude/plugins/`. Both have their own README with full detail.
29
+
30
+ ### product-manager
31
+
32
+ PRD and PRP generation. Slash commands:
33
+ - `/product-manager:prd` draft a PRD (business-facing)
34
+ - `/product-manager:prp` draft a PRP (engineering-ready spec)
35
+ - `/product-manager:run` full PM pipeline
36
+
37
+ Sub-agent `product-manager` is also Task-tool-invokable for delegation.
38
+
39
+ ### staff-software-engineer
40
+
41
+ Engineering pipeline. Slash commands:
42
+ - `/sse:plan` technical plan from an approved PRP
43
+ - `/sse:dev` implement the plan, run convention gates
44
+ - `/sse:test` run repo tests
45
+ - `/sse:pr` open the draft PR
46
+ - `/sse:run` full SSE pipeline
47
+
48
+ Sub-agent `staff-software-engineer` is also Task-tool-invokable.
49
+
50
+ Full pipeline order: `prd → prp → plan → dev → test → pr`. Each stage gets an approval marker. The status bar tracks the current one.
51
+
52
+ ## Project conventions override
53
+
54
+ Each target repo can override SSE plugin defaults with files in `.claude/conventions/`:
55
+
56
+ ```
57
+ {repo}/.claude/conventions/
58
+ ├── backend.md
59
+ ├── web.md
60
+ ├── mobile.md
61
+ └── devops.md
62
+ ```
63
+
64
+ When a file exists, plugin reads it on top of defaults. Project wins. Reference: `.claude/plugins/staff-software-engineer/guides/conventions-override.md`.
65
+
66
+ ## Token accounting and status bar
67
+
68
+ After approval, hooks compute tokens used per phase from the Claude transcript and append to `outputs/tokens/{feature_id}.json` (per plugin). One JSON collects phases across the full lifecycle.
69
+
70
+ The status bar follows the active feature through the 6-stage pipeline. See `.claude/hooks/status-line.sh`.
71
+
72
+ ## Core Principles
73
+
74
+ ### Context engineering
75
+
76
+ Reference the workspace before generating:
77
+ - `context-library/business-info.md` for company context
78
+ - `context-library/squads/{squad}/` for squad-specific context
79
+ - `context-library/strategy/` for frameworks, OKRs, roadmaps
80
+ - `context-library/example-prds/` for reference artifacts
81
+ - `context-library/decisions/`, `meetings/`, `metrics/`, `research/` for prior work
82
+
83
+ ### Output philosophy
84
+
85
+ Short, specific, actionable.
86
+
87
+ - shorter beats longer
88
+ - specific over generic (real names, numbers, quotes)
89
+ - mark gaps with `NOT FOUND - NEEDS REVIEW: {detail}` rather than inventing
90
+ - mermaid not ASCII diagrams
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Space Metrics AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.