@keighleykodric/weeve 0.1.0 → 0.1.2

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 (98) hide show
  1. package/README.md +75 -19
  2. package/bin/weeve.js +467 -2
  3. package/examples/core/CODEOWNERS.template +9 -0
  4. package/examples/core/README.md +63 -0
  5. package/examples/core/demo/README.md +38 -0
  6. package/examples/core/demo/weeve/ally/ally-intake.md +16 -0
  7. package/examples/core/demo/weeve/compass/compass-intake.md +15 -0
  8. package/examples/core/demo/weeve/layers-plus/figma-notes.md +31 -0
  9. package/examples/core/demo/weeve/layers-plus/layers-plus-intake.md +13 -0
  10. package/examples/core/demo/weeve/rubric/component-inventory.md +42 -0
  11. package/examples/core/demo/weeve/rubric/rubric-intake.md +14 -0
  12. package/examples/core/demo/weeve/shared/competitive.md +28 -0
  13. package/examples/core/demo/weeve/shared/roadmap.md +26 -0
  14. package/examples/core/demo/weeve/shared/weeve-guardrails.md +28 -0
  15. package/examples/core/demo/weeve/shared/weeve-intake.md +18 -0
  16. package/examples/core/demo/weeve/shared/weeve-project.md +33 -0
  17. package/examples/core/demo/weeve.yaml +15 -0
  18. package/examples/core/weeve.yaml +14 -0
  19. package/examples/engineering/CODEOWNERS.template +9 -0
  20. package/examples/engineering/README.md +61 -0
  21. package/examples/engineering/demo/README.md +20 -0
  22. package/examples/engineering/demo/weeve/forge/architecture.md +39 -0
  23. package/examples/engineering/demo/weeve/forge/ci-metrics.md +47 -0
  24. package/examples/engineering/demo/weeve/forge/forge-intake.md +41 -0
  25. package/examples/engineering/demo/weeve/guard/guard-intake.md +17 -0
  26. package/examples/engineering/demo/weeve/helm/helm-intake.md +16 -0
  27. package/examples/engineering/demo/weeve/helm/incidents.md +40 -0
  28. package/examples/engineering/demo/weeve/helm/on-call-runbook.md +33 -0
  29. package/examples/engineering/demo/weeve/shared/roadmap.md +25 -0
  30. package/examples/engineering/demo/weeve/shared/team.md +33 -0
  31. package/examples/engineering/demo/weeve/shared/weeve-guardrails.md +27 -0
  32. package/examples/engineering/demo/weeve/shared/weeve-intake.md +18 -0
  33. package/examples/engineering/demo/weeve/shared/weeve-project.md +29 -0
  34. package/examples/engineering/demo/weeve/verify/coverage-report.md +49 -0
  35. package/examples/engineering/demo/weeve/verify/verify-intake.md +16 -0
  36. package/examples/engineering/demo/weeve.yaml +15 -0
  37. package/examples/engineering/weeve.yaml +14 -0
  38. package/examples/gtm/CODEOWNERS.template +8 -0
  39. package/examples/gtm/README.md +59 -0
  40. package/examples/gtm/demo/README.md +19 -0
  41. package/examples/gtm/demo/weeve/compass/compass-intake.md +15 -0
  42. package/examples/gtm/demo/weeve/maven/maven-intake.md +35 -0
  43. package/examples/gtm/demo/weeve/maven/website-notes.md +33 -0
  44. package/examples/gtm/demo/weeve/pitch/pitch-intake.md +54 -0
  45. package/examples/gtm/demo/weeve/pitch/sales-deck-notes.md +28 -0
  46. package/examples/gtm/demo/weeve/pitch/win-loss-notes.md +40 -0
  47. package/examples/gtm/demo/weeve/shared/competitive.md +30 -0
  48. package/examples/gtm/demo/weeve/shared/roadmap.md +19 -0
  49. package/examples/gtm/demo/weeve/shared/weeve-guardrails.md +24 -0
  50. package/examples/gtm/demo/weeve/shared/weeve-intake.md +18 -0
  51. package/examples/gtm/demo/weeve/shared/weeve-project.md +25 -0
  52. package/examples/gtm/demo/weeve.yaml +22 -0
  53. package/examples/gtm/weeve.yaml +14 -0
  54. package/examples/product/CODEOWNERS.template +10 -0
  55. package/examples/product/README.md +67 -0
  56. package/examples/product/demo/README.md +21 -0
  57. package/examples/product/demo/weeve/ally/ally-intake.md +16 -0
  58. package/examples/product/demo/weeve/compass/compass-intake.md +15 -0
  59. package/examples/product/demo/weeve/felt/felt-intake.md +37 -0
  60. package/examples/product/demo/weeve/felt/user-research.md +68 -0
  61. package/examples/product/demo/weeve/layers-plus/layers-plus-intake.md +14 -0
  62. package/examples/product/demo/weeve/rubric/component-inventory.md +42 -0
  63. package/examples/product/demo/weeve/rubric/rubric-intake.md +14 -0
  64. package/examples/product/demo/weeve/shared/competitive.md +28 -0
  65. package/examples/product/demo/weeve/shared/roadmap.md +32 -0
  66. package/examples/product/demo/weeve/shared/weeve-guardrails.md +27 -0
  67. package/examples/product/demo/weeve/shared/weeve-intake.md +18 -0
  68. package/examples/product/demo/weeve/shared/weeve-project.md +29 -0
  69. package/examples/product/demo/weeve.yaml +21 -0
  70. package/examples/product/weeve.yaml +14 -0
  71. package/examples/strategy/CODEOWNERS.template +8 -0
  72. package/examples/strategy/README.md +59 -0
  73. package/examples/strategy/demo/README.md +19 -0
  74. package/examples/strategy/demo/weeve/compass/compass-intake.md +34 -0
  75. package/examples/strategy/demo/weeve/compass/customer-segments.md +34 -0
  76. package/examples/strategy/demo/weeve/layers-plus/layers-plus-intake.md +15 -0
  77. package/examples/strategy/demo/weeve/maven/maven-intake.md +33 -0
  78. package/examples/strategy/demo/weeve/shared/competitive.md +40 -0
  79. package/examples/strategy/demo/weeve/shared/roadmap.md +29 -0
  80. package/examples/strategy/demo/weeve/shared/weeve-guardrails.md +22 -0
  81. package/examples/strategy/demo/weeve/shared/weeve-intake.md +17 -0
  82. package/examples/strategy/demo/weeve/shared/weeve-project.md +25 -0
  83. package/examples/strategy/demo/weeve.yaml +15 -0
  84. package/examples/strategy/weeve.yaml +14 -0
  85. package/package.json +14 -3
  86. package/spec/contributing-template.md +109 -0
  87. package/spec/readme-template.md +55 -0
  88. package/{docs/shared/SHIP-GATE.md → spec/ship-gate.md} +7 -7
  89. package/spec/signals-schema.md +685 -0
  90. package/spec/weeve-yaml.md +274 -0
  91. package/.github/SECURITY.md +0 -22
  92. package/GOVERNANCE.md +0 -173
  93. package/WORKFLOW.md +0 -354
  94. package/docs/shared/engineering-pack-contract.md +0 -94
  95. package/docs/shared/id-prefix-reference.md +0 -235
  96. package/docs/shared/idea-intake-pattern.md +0 -99
  97. package/docs/shared/lane-conventions.md +0 -207
  98. package/docs/shared/recommendations-schema.md +0 -363
@@ -0,0 +1,16 @@
1
+ # helm-intake — Volta
2
+ # Source: weeve/helm/incidents.md, PagerDuty, Datadog, team observations
3
+
4
+ _Feed to `/helm-intake`. Focus: deploys, monitoring, incidents, on-call._
5
+
6
+ ---
7
+
8
+ - Rollback avg time: ~8 minutes. SLO target: 5 minutes.
9
+ - Staging cluster availability: 97.1% over the last 30 days. Target: 99.5%.
10
+ - 3 P1 incidents in 60 days — 2 from config drift, 1 from a dependency update.
11
+ - No automated rollback trigger. Rollback is always manual.
12
+ - On-call rotation includes 6 backend engineers who have never touched the Volta codebase.
13
+ - Alert fatigue: PagerDuty fires ~40 alerts/week. Engineers estimate ~30% are noise.
14
+ - No SLO dashboard visible to non-platform engineers. Staging health is invisible to the backend team on rotation.
15
+ - `config-watcher` has been patched 3 times for the same class of drift issue. Root cause unresolved.
16
+ - No deploy freeze windows — deploys happen 24/7 including Friday afternoons.
@@ -0,0 +1,40 @@
1
+ # Incident log — Volta
2
+
3
+ _P1 and P2 incidents, last 90 days. P3s tracked in Jira._
4
+
5
+ ---
6
+
7
+ ## P1 — April 14, 2026 · 3h 22m
8
+
9
+ **Title:** Config drift — env provisioning failure for 12 teams
10
+ **Impact:** 12 engineering teams unable to provision environments
11
+ **Root cause:** Terraform state file format changed after a version bump. `config-watcher` didn't detect the schema change.
12
+ **Resolved by:** Alex manually patched the state file parser.
13
+ **Postmortem:** No formal postmortem. Slack thread exists with notes.
14
+ **Follow-up:** "Add schema validation to config-watcher" — Jira ticket filed, not prioritized.
15
+
16
+ ---
17
+
18
+ ## P1 — March 3, 2026 · 1h 34m
19
+
20
+ **Title:** Deployment pipeline down
21
+ **Impact:** All deploys blocked across 80 engineers
22
+ **Root cause:** A Go dependency update introduced a breaking API change in the deploy orchestration layer.
23
+ **Resolved by:** Jordan rolled back the dependency manually.
24
+ **Postmortem:** Written. Recommendation: pin dependency versions. Implemented for this one dependency only.
25
+ **Follow-up:** Pin `go-deploy-sdk` to v2.1.3 — done. Other unpinned dependencies not reviewed.
26
+
27
+ ---
28
+
29
+ ## P2 — February 11, 2026 · 6h (4h undetected)
30
+
31
+ **Title:** Staging cluster degraded
32
+ **Impact:** Staging at 94% availability for 6 hours. 3 teams had broken test environments.
33
+ **Root cause:** Disk pressure on a staging node. No alert threshold set for disk usage.
34
+ **Resolved by:** Sam noticed it in Datadog while working on something else.
35
+ **Postmortem:** No.
36
+ **Follow-up:** Disk usage alert added at 85% threshold.
37
+
38
+ ---
39
+
40
+ _Note: the Feb and April incidents have the same root cause class (undetected environmental change). No systemic fix has been made._
@@ -0,0 +1,33 @@
1
+ # On-call runbook — Volta
2
+
3
+ _Last updated: Priya, October 2025 (before she left)_
4
+
5
+ ## When you get paged
6
+
7
+ 1. Check the Datadog dashboard (link in Slack #platform-alerts — note: this link may be stale)
8
+ 2. If it's the deployment pipeline, look at the GitHub Actions logs
9
+ 3. If it's env provisioning, check the Terraform state
10
+ 4. If it's secrets, call Alex
11
+
12
+ ## Common issues
13
+
14
+ - **Config drift:** restart the config-watcher service (`kubectl rollout restart deployment/config-watcher`)
15
+ - **Slow builds:** check if the runner disk is full — happened once in March
16
+ - **PagerDuty noise:** a lot of alerts are false positives, use judgment
17
+
18
+ ## Escalation
19
+
20
+ - Alex knows most things (deployment pipeline, secrets)
21
+ - Jordan knows Terraform and Kubernetes
22
+ - If neither responds within 10 minutes, post in #platform-oncall
23
+
24
+ ---
25
+
26
+ _TODO: Add runbook sections for the secrets module._
27
+ _TODO: Add runbook for scheduler and on-call rotation issues._
28
+ _TODO: Update the Datadog dashboard link — the one in Slack is broken._
29
+ _TODO: Document what the backend team engineers should do when they're paged for something they don't recognize._
30
+
31
+ ---
32
+
33
+ _Note from Jordan, Feb 2026: "This runbook is pretty out of date. Tom and Priya wrote most of it. I've been meaning to update it."_
@@ -0,0 +1,25 @@
1
+ # Roadmap — Volta
2
+
3
+ _There isn't a real roadmap doc. Platform team tracks work in Jira under project VLT._
4
+ _This is a rough summary of what's known to be in progress._
5
+
6
+ ## In progress
7
+
8
+ - CI caching — no ETA, Alex is working on it between other things
9
+ - Secrets management migration evaluation — considering AWS Secrets Manager vs staying on Vault
10
+
11
+ ## Requested / backlog
12
+
13
+ - Better rollback UX — current CLI flow is awkward, engineers complain about it
14
+ - Staging environment self-service — currently requires a platform team ticket
15
+ - On-call runbook refresh — hasn't been touched since Tom and Priya left
16
+
17
+ ## Not on the roadmap
18
+
19
+ - UI redesign
20
+ - Multi-cluster support
21
+ - Any external-facing features
22
+
23
+ ---
24
+
25
+ _Ask Alex or Jordan for current sprint status. This doc reflects what's publicly known, not what's committed._
@@ -0,0 +1,33 @@
1
+ # Team — Volta platform team
2
+
3
+ _As of Q2 2026_
4
+
5
+ ## Current team
6
+
7
+ | Name | Role | Tenure | Notes |
8
+ |---|---|---|---|
9
+ | Alex | Senior engineer | 3 years | Owns ~45% of codebase by commit count. Deployment pipeline and secrets module. |
10
+ | Jordan | Senior engineer | 18 months | Infra, Terraform, Kubernetes. Part-time on a separate initiative. |
11
+ | Sam | Mid-level engineer | 8 months | CI/CD tooling, on-call tooling. Still ramping. |
12
+ | Casey | Mid-level engineer | 6 months | Reviewing and fixing bugs. New to the platform domain. |
13
+
14
+ ## Former team (relevant context)
15
+
16
+ | Name | Departed | Owned |
17
+ |---|---|---|
18
+ | Tom | 8 months ago | Architecture lead. Designed the env provisioning system. No handoff docs written. |
19
+ | Priya | 6 months ago | Secrets module and original on-call setup. Left the on-call runbook partially complete. |
20
+
21
+ ## On-call rotation
22
+
23
+ Shared with the backend team (6 engineers). Backend engineers are on the rotation but have never touched the Volta codebase.
24
+
25
+ ## Commit ownership (approximate, from git log)
26
+
27
+ - Alex: ~45%
28
+ - Tom (departed): ~25%
29
+ - Priya (departed): ~15%
30
+ - Jordan: ~10%
31
+ - Others: ~5%
32
+
33
+ About 40% of the active codebase was last touched by people who are no longer on the team.
@@ -0,0 +1,27 @@
1
+ # weeve-guardrails.md — Volta
2
+
3
+ ## Hard limits
4
+ - Kubernetes only — no ECS, no Nomad; infra team has standardized
5
+ - GitHub Actions only — no migration to other CI providers
6
+ - Vault (HashiCorp) for secrets — cannot migrate without a 6-month project
7
+ - No downtime for the deployment pipeline — it runs 200+ deploys/day
8
+
9
+ ## Technical constraints
10
+ - Go backend (no migration appetite), React frontend
11
+ - Multi-cluster: 3 clusters (dev, staging, prod); config changes must propagate to all
12
+ - On-prem + AWS hybrid; some services cannot move to cloud-only solutions
13
+ - PagerDuty + Datadog are the observability stack; no budget to change
14
+
15
+ ## Resourcing
16
+ - 4 platform engineers — no dedicated QA, security, or SRE
17
+ - On-call is shared with backend team who have no Volta context
18
+
19
+ ## Non-negotiables
20
+ - Deployment pipeline must not go below 99.5% availability
21
+ - No breaking changes to the environment provisioning CLI (engineers have scripts depending on it)
22
+ - All secrets changes must be auditable (full log retained for 90 days)
23
+
24
+ ## Known risks (from last 3 incident retros)
25
+ - Config drift between clusters is a recurring root cause — no automated reconciliation
26
+ - Dependency updates applied without test validation caused a P1 in week 8
27
+ - The secrets module's last code review was 14 months ago
@@ -0,0 +1,18 @@
1
+ # weeve-intake.md — Volta observations
2
+
3
+ ---
4
+
5
+ ## Captured observations
6
+
7
+ - CI average runtime is 18 minutes; p95 is 31 minutes — engineers are routinely skipping it on "small" PRs
8
+ - The deployment pipeline module has 9% test coverage; it processes ~200 deploys/day
9
+ - 3 P1 incidents in 60 days: 2 config drift, 1 dependency update gone wrong
10
+ - Secrets management module hasn't been reviewed or audited in 14 months
11
+ - No automated config reconciliation between clusters — drift is detected only after incidents
12
+ - The `volta env create` CLI has 3 undocumented flags that engineers have learned via Slack — not in docs
13
+ - Rollback takes ~8 minutes on average; SLO target is 5 minutes
14
+ - Two original authors left 8 months ago; no knowledge transfer docs
15
+ - The on-call rotation includes backend engineers who've never touched Volta's codebase
16
+ - Go module dependencies haven't been audited for CVEs in the current quarter
17
+ - One engineer is maintaining 70% of the codebase by commit count — single point of failure
18
+ - Staging cluster SLO dashboard shows 97.1% availability last 30 days vs 99.5% target
@@ -0,0 +1,29 @@
1
+ # Volta — project brief
2
+
3
+ **What it is:** Volta is an internal developer platform at a 120-person B2B SaaS company. It wraps Kubernetes, Terraform, and GitHub Actions into a self-service portal — engineers provision environments, manage deployments, and view SLO dashboards without touching infra directly.
4
+
5
+ **Stage:** In production. ~80 engineers using it daily. Maintained by a 4-person platform team. Not a product — internal tooling.
6
+
7
+ **Core surfaces:**
8
+ - Self-service environment provisioning (web UI + CLI)
9
+ - Deployment pipeline management (GitHub Actions, wrapped)
10
+ - SLO/SLA dashboard (pulls from Datadog + PagerDuty)
11
+ - Secrets management (Vault integration, web UI)
12
+ - On-call rotation management
13
+
14
+ **Current state:**
15
+ - The codebase is 3 years old; two original authors have left
16
+ - Test coverage is ~42% overall; the deployment pipeline module is at 9%
17
+ - CI runs take ~18 minutes on average; engineers have started skipping it on "small" changes
18
+ - Three P1 incidents in the last 60 days — two were traced to config drift, one to a dependency update
19
+ - Secrets management module has never had a security audit
20
+
21
+ **Team:**
22
+ - 4 platform engineers (2 senior, 2 mid)
23
+ - No dedicated QA or security engineer
24
+ - On-call rotation shared with the backend team (who don't maintain Volta)
25
+
26
+ **Open questions:**
27
+ - The deployment pipeline module is the most-used but least-tested area — rewrite or harden?
28
+ - CI time is killing developer experience; caching strategy is ad hoc
29
+ - Should secrets management be migrated to a managed service (e.g., AWS Secrets Manager)?
@@ -0,0 +1,49 @@
1
+ # Coverage report — Volta
2
+
3
+ _From `go test -coverprofile`, run April 28, 2026._
4
+
5
+ ## Summary
6
+
7
+ | Module | Coverage | Trend | Risk |
8
+ |---|---|---|---|
9
+ | api/ | 71% | → stable | Low |
10
+ | provisioner/ | 58% | ↓ declining | Medium |
11
+ | deployer/ | 9% | ↓ declining | **Critical** |
12
+ | secrets/ | 34% | → stable | High |
13
+ | scheduler/ | 61% | ↑ improving | Low |
14
+ | config-watcher/ | 22% | → stable | High |
15
+ | web/ | 41% | → stable | Medium |
16
+
17
+ **Overall: ~42%**
18
+
19
+ ## deployer/ detail — what's tested vs not
20
+
21
+ **Covered:**
22
+ - `NewDeployer()` constructor
23
+ - Basic deploy job creation
24
+ - Error type definitions
25
+
26
+ **Not covered:**
27
+ - Deploy execution logic
28
+ - Rollback logic
29
+ - Retry behavior on failure
30
+ - Concurrent deploy handling
31
+ - GitHub Actions API calls (mocked in all tests — never hit a real API)
32
+
33
+ ## Known skipped tests
34
+
35
+ ```go
36
+ // deployer/deploy_test.go:47
37
+ t.Skip("flaky, investigate - added Jan 15 2026")
38
+
39
+ // deployer/concurrent_test.go:23
40
+ t.Skip("race condition, needs fixing")
41
+ ```
42
+
43
+ ## Untested scenarios (no tests exist)
44
+
45
+ - Integration with live GitHub Actions
46
+ - Behavior under high deploy frequency (>5 concurrent)
47
+ - Rollback triggered during an active deploy
48
+ - Secrets decryption in the deploy pipeline path
49
+ - What happens when `config-watcher` and `deployer/` update the same environment simultaneously
@@ -0,0 +1,16 @@
1
+ # verify-intake — Volta
2
+ # Source: weeve/verify/coverage-report.md, CI logs, team observations
3
+
4
+ _Feed to `/verify-intake`._
5
+
6
+ ---
7
+
8
+ - Overall coverage: 42%. `deployer/` module (highest traffic): 9%.
9
+ - 2 known flaky tests skipped with `t.Skip()`. Neither has been investigated in 3+ months.
10
+ - CI is routinely skipped by engineers on "small" changes — no enforcement mechanism exists.
11
+ - No integration tests for `deployer/`. All tests mock the GitHub Actions API calls.
12
+ - Load testing: never run. No performance baselines exist.
13
+ - Staging is the only pre-prod environment. No canary or shadow deploys.
14
+ - Release process: code merges to main and deploys automatically. No gating step.
15
+ - No feature flags. Every change is a full rollout to all 80 engineers simultaneously.
16
+ - QA role: doesn't exist on the platform team or anywhere in the on-call structure.
@@ -0,0 +1,15 @@
1
+ # weeve.yaml — engineering preset demo project
2
+ schema_version: "0.4"
3
+
4
+ project:
5
+ name: Volta
6
+ tag: VLT
7
+ docs_root: ./weeve
8
+
9
+ roads:
10
+ - name: startup
11
+ path: roads/startup
12
+
13
+ # Lanes in this preset: forge, helm, verify, guard, pilot
14
+ # Demo project: Volta — internal developer platform
15
+ # Run /forge-intro to get started
@@ -0,0 +1,14 @@
1
+ # weeve.yaml — engineering preset
2
+ # Generated by: weeve init engineering
3
+ schema_version: "0.4"
4
+
5
+ project:
6
+ name: My Project # Replace with your project name
7
+ tag: MYP # Short ID — matches vault Projects/<tag>/ folder
8
+ # docs_root: ./weeve # Uncomment to use a local path instead of vault
9
+
10
+ roads:
11
+ - name: startup
12
+ path: roads/startup
13
+
14
+ # Lanes in this preset: forge, helm, verify, guard, pilot
@@ -0,0 +1,8 @@
1
+ # Weeve lane ownership
2
+ # Copy to .github/CODEOWNERS and replace team handles with your org's teams
3
+ # Requires GitHub branch protection with "Require review from Code Owners" enabled
4
+
5
+ weeve/compass/ @leadership
6
+ weeve/maven/ @marketing
7
+ weeve/pitch/ @revenue
8
+ weeve/pilot/ @leadership
@@ -0,0 +1,59 @@
1
+ # gtm preset
2
+
3
+ ## Who this is for
4
+
5
+ The `gtm` (go-to-market) preset is for teams preparing a product launch, entering a new market segment, or standing up a sales motion for the first time. It connects strategic orientation directly to market narrative and revenue readiness — giving marketing, sales, and revenue leadership the structured artifacts they need to launch with confidence. Use this preset when the critical questions are about messaging, positioning, and whether the revenue motion is ready to execute, not about product or engineering quality.
6
+
7
+ ## What you get
8
+
9
+ - **compass-signals.md** — market opportunity map: where demand is moving and what competitors are signaling
10
+ - **compass-context.md** — current position snapshot to anchor messaging and differentiation decisions
11
+ - **maven-brief.md** — go-to-market narrative and positioning brief with key messages and proof points
12
+ - **pitch-deck.md** — structured pitch framework: value proposition, objection handling, and proof story for sales and investors
13
+ - **pilot-brief.md** — launch readiness recommendation with go/no-go decision, key risks, and suggested timing
14
+
15
+ ## Install
16
+
17
+ ```bash
18
+ npx weeve add gtm
19
+ ```
20
+
21
+ Equivalent individual lanes:
22
+
23
+ ```bash
24
+ npx weeve add compass maven pitch pilot
25
+ ```
26
+
27
+ ## First run sequence
28
+
29
+ Run these skills in order. Steps marked **(parallel)** can be run simultaneously once their prerequisites are complete.
30
+
31
+ 1. **compass** — Maps market signals, competitor positioning, and demand shifts to identify where the launch has the highest chance of landing.
32
+ 2. **maven** — Builds the go-to-market narrative from the compass signals: positioning, differentiation, key messages, and the story the market needs to hear.
33
+ 3. **pitch** — Translates the maven narrative into a structured pitch framework with value proposition, proof points, and objection handling for sales and investor conversations.
34
+ 4. **pilot** — Evaluates launch readiness across market timing, narrative quality, and revenue motion maturity; outputs a go/no-go brief with risk ranking.
35
+
36
+ ## What you'll have at the end
37
+
38
+ | File | Description |
39
+ |---|---|
40
+ | `weeve/compass/compass-signals.md` | Market opportunity map with demand signals and competitor moves |
41
+ | `weeve/compass/compass-context.md` | Competitive position snapshot to anchor differentiation |
42
+ | `weeve/maven/maven-brief.md` | GTM narrative, positioning brief, and key messages with proof points |
43
+ | `weeve/pitch/pitch-deck.md` | Structured pitch framework with value proposition and objection handling |
44
+ | `weeve/pilot/pilot-brief.md` | Launch readiness brief with go/no-go recommendation and risk ranking |
45
+
46
+ ## CODEOWNERS
47
+
48
+ Copy to `.github/CODEOWNERS`:
49
+
50
+ ```
51
+ weeve/compass/ @leadership
52
+ weeve/maven/ @marketing
53
+ weeve/pitch/ @revenue
54
+ weeve/pilot/ @leadership
55
+ ```
56
+
57
+ ## Time estimate
58
+
59
+ First full run: **40–65 minutes**. Maven is the most intensive lane and benefits significantly from having sharp compass artifacts to work from — invest time in compass inputs (competitor briefs, market research, positioning hypotheses) for the best maven output. Pitch runs quickly once maven is complete. Subsequent runs before a launch: 15–25 minutes for incremental refinement.
@@ -0,0 +1,19 @@
1
+ # Relay — GTM preset demo
2
+
3
+ An outbound sales automation SaaS with a noisy pipeline and inconsistent positioning. Use this demo to try the **GTM** preset (Compass, Maven, Pitch, Pilot).
4
+
5
+ ## Run it
6
+
7
+ ```bash
8
+ weeve add gtm
9
+ /compass-intro # strategic position — where Relay plays and why
10
+ /maven-intro # messaging, positioning, brand voice
11
+ /pitch-intro # pipeline health, ICP, conversion, pricing
12
+ /pilot-priorities
13
+ ```
14
+
15
+ Outputs land in `./weeve/<lane>/`.
16
+
17
+ ## The project
18
+
19
+ Relay has grown fast but the GTM motion is inconsistent. Two reps win at 2× the rate of the others. The website doesn't say what the team says on sales calls. 60% of churned customers never set up a sequence. The positioning against Apollo isn't landing even though Relay should win that comparison on paper. Rich material for Compass (where to play), Maven (how to say it), and Pitch (why deals are being lost).
@@ -0,0 +1,15 @@
1
+ # compass-intake — Relay
2
+ # Source: sales data, CRM, team conversations
3
+
4
+ _Feed to `/compass-intake`._
5
+
6
+ ---
7
+
8
+ - Win rate: 21% overall. Two reps at 38–41%, two at 12–14%. Gap unexplained.
9
+ - Top loss reason: "evaluating Apollo" (38% of losses). Apollo is high-volume/low-quality — the opposite of Relay's pitch. Something is wrong with how the differentiation is being communicated.
10
+ - Churn pattern: 60% of churned customers never set up a sequence in 14 days. This is an onboarding gap, not a product gap.
11
+ - Referrals: 31% of new pipeline, growing organically. No formal referral program.
12
+ - PLG debate: team is split on free trial. Some worry it attracts wrong customers who won't set up sequences — the same profile as the high-churn cohort.
13
+ - ICP: 4 salespeople describe it differently when asked. No written ICP document.
14
+ - SOC 2 Type II gap: 2 enterprise deals lost for this reason in 90 days. Not on the current roadmap.
15
+ - Series A investors asking about net revenue retention. Not tracked consistently.
@@ -0,0 +1,35 @@
1
+ # maven-intake — Relay
2
+ # Source: weeve/maven/website-notes.md, sales deck review, team conversations
3
+
4
+ _Feed to `/maven-intake`._
5
+
6
+ ---
7
+
8
+ ## Messaging inconsistency
9
+
10
+ - Website: "The smarter outbound platform" — vague, no differentiation
11
+ - Sales deck: "Personalize at scale" — same phrase Apollo uses
12
+ - Top rep (Alex): "Precision over volume" — resonates, not in any asset
13
+ - Bottom reps: "It's like Apollo but easier" — positions us as a cheaper version, not a different thing
14
+
15
+ Four different answers to "what is Relay?"
16
+
17
+ ## Website observations
18
+
19
+ - Hero doesn't mention quality, precision, or the Apollo differentiation
20
+ - AI personalization (key differentiator) is buried — one paragraph, third section
21
+ - Two case studies, both 14 months old, both predate AI personalization
22
+ - Social proof: "210+ teams" — feels small; no logos on homepage
23
+ - Pricing: 3 tiers, but reps say "we only ever sell the middle tier"
24
+
25
+ ## Acquisition
26
+
27
+ - Main channel: outbound (ironic). Some inbound from comparison content.
28
+ - Referrals: 31% of pipeline, growing organically, no program supporting it.
29
+ - One "Apollo alternatives" article drives some inbound.
30
+ - No content strategy or SEO investment.
31
+
32
+ ## Email / lifecycle
33
+
34
+ - Onboarding sequence exists but CS doesn't follow a standard playbook.
35
+ - No re-engagement or churn-prevention sequences.
@@ -0,0 +1,33 @@
1
+ # Website notes — Relay
2
+
3
+ _Quick review, April 2026. Not comprehensive._
4
+
5
+ ## Hero
6
+
7
+ "The smarter outbound platform. Build sequences, personalize at scale, close more deals."
8
+
9
+ - "Smarter" is undefined
10
+ - "Personalize at scale" is Apollo's phrase
11
+ - "Close more deals" is what every sales tool says
12
+ - No mention of quality, precision, or why Relay is different from Apollo
13
+
14
+ ## Features section
15
+
16
+ Sequence builder — well explained. AI personalization — one paragraph, third. Inbox management — not mentioned. Analytics — one line.
17
+
18
+ ## Social proof
19
+
20
+ - 2 case studies (14 months old)
21
+ - "210+ teams" as the social proof number
22
+ - No customer logos
23
+
24
+ ## Pricing
25
+
26
+ - Starter / Growth / Scale at $49 / $99 / $199
27
+ - Reps say: "we only ever sell Growth"
28
+ - No "most popular" indicator
29
+ - Annual discount exists but not emphasized
30
+
31
+ ---
32
+
33
+ _No changes made since the product launch 14 months ago._
@@ -0,0 +1,54 @@
1
+ # pitch-intake — Relay
2
+ # Source: weeve/pitch/win-loss-notes.md, CRM notes, call shadowing, CS data
3
+
4
+ _Feed to `/pitch-intake`. Most actionable sales signal is here._
5
+
6
+ ---
7
+
8
+ ## Win rate by rep
9
+
10
+ - Alex (AE, 2 years): 41% — $180K last quarter
11
+ - Morgan (AE, 2 years): 38% — $160K last quarter
12
+ - Jordan (AE, 1 year): 14% — $52K last quarter
13
+ - Taylor (AE, 8 months): 12% — $38K last quarter
14
+
15
+ Gap between top and bottom reps is not explained by tenure alone. Jordan has been here a year.
16
+
17
+ ## What Alex does differently (from call shadowing)
18
+
19
+ - Leads with AI personalization demo, not sequence builder
20
+ - Asks "what's your current reply rate?" before showing anything — anchors on quality
21
+ - Never uses "personalize at scale" — says "precision over volume"
22
+ - Qualifies against Apollo early: "what's your reply rate with Apollo?"
23
+
24
+ ## What bottom reps do
25
+
26
+ - Lead with the sequence builder — feature parity with Apollo, not a differentiator
27
+ - Use "personalize at scale" from the sales deck (same phrase Apollo uses)
28
+ - Demo everything instead of the top 2-3 features
29
+ - Skip discovery questions
30
+
31
+ ## Loss breakdown (last 60 lost deals, from CRM)
32
+
33
+ | Reason | Count |
34
+ |---|---|
35
+ | Evaluating Apollo | 23 |
36
+ | Price | 12 |
37
+ | No decision (went cold) | 9 |
38
+ | Chose Outreach | 8 |
39
+ | Missing feature | 5 |
40
+ | Other | 3 |
41
+
42
+ ## Churn patterns (from CS data)
43
+
44
+ - 60% of churned customers never set up a sequence in the first 14 days
45
+ - No structured onboarding — every CSM runs it differently
46
+ - Time to first sequence: median 8 days, range 1–47 days
47
+ - Customers who set up a sequence within 3 days: 4% annual churn
48
+ - Customers who take >14 days: 34% annual churn
49
+
50
+ ## Feature awareness gaps (from customer calls last month)
51
+
52
+ - 3 customers: "I didn't know it could do LinkedIn steps"
53
+ - 2 customers: "I didn't realize there was inbox management"
54
+ - These are differentiating features customers are paying for but not using
@@ -0,0 +1,28 @@
1
+ # Sales deck notes — Relay
2
+
3
+ _Quick review. Not a full audit._
4
+
5
+ ## Current structure (22 slides)
6
+
7
+ 1. Title: "The smarter outbound platform"
8
+ 2. The problem: "Outbound is broken"
9
+ 3. Solution: "Personalize at scale"
10
+ 4. Sequence builder demo
11
+ 5. AI personalization demo
12
+ 6. Analytics demo
13
+ 7. Integrations
14
+ 8–9. Two case studies (both 14 months old, pre-AI personalization)
15
+ 10–22. Pricing, security, FAQ
16
+
17
+ ## Issues noticed
18
+
19
+ - Slide 3 uses "personalize at scale" — Apollo's phrase
20
+ - AI personalization is slide 5 (after the sequence builder). Top reps lead with this, not the deck.
21
+ - Both case studies predate the AI personalization feature — don't reflect current product
22
+ - No reply rate data or industry benchmarks
23
+ - No slide addressing the Apollo objection (38% of losses)
24
+ - No "quality vs volume" framing anywhere in the deck
25
+
26
+ ---
27
+
28
+ _Deck hasn't been updated in 14 months. Most slides reflect the pre-AI-personalization product._
@@ -0,0 +1,40 @@
1
+ # Win/loss notes — Relay
2
+
3
+ _Selected deals, last 90 days. From CRM notes + brief follow-up calls._
4
+
5
+ ## Wins
6
+
7
+ **W-01 — 22-person SaaS sales team · $1,200/mo · Rep: Alex · Beat Apollo**
8
+ Alex led with reply rate data. Prospect had used Apollo for 6 months with 1.2% reply rates. Alex showed Relay's benchmark (3.8% for similar sequences).
9
+ Prospect quote: "You led with the only thing I actually care about."
10
+
11
+ **W-02 — 15-person e-commerce brand · $99/mo · Rep: Morgan · No competitor**
12
+ Inbound from a referral. Never considered Apollo. Chose Relay because "it looked easier."
13
+
14
+ **W-03 — 35-person fintech · $1,200/mo · Rep: Alex · Beat Instantly**
15
+ Instantly is email-only. Alex knew this before the call and led with LinkedIn steps.
16
+
17
+ **W-04 — 8-person agency · $49/mo · Rep: Taylor · No real competitor**
18
+ Won on price. Hasn't set up a sequence yet (day 12). At-risk of churn.
19
+
20
+ ## Losses
21
+
22
+ **L-01 — 60-person B2B SaaS · Went to Apollo · Rep: Jordan**
23
+ Jordan led with the sequence builder. Prospect said "Apollo does this too." No reply rate discussion. Apollo offered 6 months free.
24
+
25
+ **L-02 — 12-person startup · Went to Apollo free tier · Rep: Taylor**
26
+ Price objection, then Apollo free tier. Follow-up 3 months later: "Apollo's data isn't great but it's free."
27
+
28
+ **L-03 — 45-person SaaS · No decision · Rep: Morgan**
29
+ Champion left the company during the evaluation. Deal went cold. New contact unfamiliar with the evaluation history.
30
+
31
+ **L-04 — 80-person enterprise · Went to Outreach · Rep: Alex**
32
+ Lost despite best rep. Procurement required SOC 2 Type II. Relay doesn't have it.
33
+ Second deal lost for this reason in 90 days.
34
+
35
+ ## Patterns
36
+
37
+ - Every win above $500/mo included a reply rate or quality conversation early in the cycle
38
+ - Alex and Morgan both disqualify fast if the prospect's primary need is contact data volume
39
+ - Apollo free tier is pulling in price-sensitive prospects who probably weren't right-fit anyway
40
+ - SOC 2 gap has surfaced twice at the enterprise tier — may be a real blocker worth scoping
@@ -0,0 +1,30 @@
1
+ # Competitive notes — Relay
2
+
3
+ _From sales calls and rep knowledge. Not a formal analysis._
4
+
5
+ ## Competitors we lose to most
6
+
7
+ **Apollo.io** — top loss reason in the CRM (38% of losses)
8
+ - Apollo is higher-volume, lower-quality. Our pitch is the opposite.
9
+ - We lose because Apollo has a larger contact database and buyers conflate "more data" with "better outbound."
10
+ - Apollo has a free tier that pulls in price-sensitive prospects.
11
+ - Our counter-positioning ("quality over volume") is not on our website.
12
+
13
+ **Outreach / Salesloft** — enterprise, $50K+ contracts
14
+ - Win here when budget is the objection against enterprise tools.
15
+ - Rarely the direct competitor unless the company is also considering enterprise.
16
+
17
+ ## Adjacent (not direct competition)
18
+
19
+ - **Instantly / Lemlist** — email-only, founder-led teams. Different motion.
20
+ - **Clay** — data enrichment and sequencing. Some power-user overlap.
21
+
22
+ ## What we don't know
23
+
24
+ - Why we lose to Apollo when our quality positioning should be a clear differentiator
25
+ - Whether prospects understand the Apollo quality difference or just see us as "Apollo but smaller"
26
+ - Whether the SOC 2 gap (lost 2 enterprise deals) is a real pipeline blocker
27
+
28
+ ---
29
+
30
+ _Win rate: 21% overall. Two reps win at 38–41%. Understanding the rep gap is more urgent than competitor research._